计算机系云计算实验报告-期中报告

网友投稿 272 2022-11-13

计算机系云计算实验报告-期中报告

计算机系云计算实验报告

-期中报告

姓名:    魏增       学号: 6102213869     专业班级: 航天131班

实验名称:云计算课期中考试

实验目的: 1、掌握如何把Web程序部署到任意一个公共云平台。

2、熟悉利用云平台的数据库。

实验要求:1、需要提交设计报告打印稿和电子稿

2、提交时间:本学期15周

实验内容:(1)选取任意一个“Web程序设计实验”,将实现的Java Web程序部署到任意一个公共云平台。

(2)【选做】选取带有后台数据库的Web程序

操作步骤:

【第一步】选做web实验三本地测试:

实验内容 :

本实验使用MVC实现学生信息管理系统的基本功能。在MVC模式中,倡导控制、模型(逻辑)和视图分离,在JSP开发的系统中,Servlet用于控制系统的运行流程,JavaBean用于业务逻辑处理、数据传输和数据持久化,而JSP用于显示系统的处理结果。相应的软件结构也分为4层:表现层、控制层、逻辑层和持久层,另有数据传输层在各层之间传递数据。

1、实现学生信息的修改和删除操作;

2、实现学生信息的查询操作,可以指定学号、姓名、专业等,也可以查询所有学生;

3、实现学生修改自己信息的功能,但只能修改本人信息(禁止修改他人信息),且只能修改“出生日期”和“密码”,其他信息禁止修改(只能由管理员(教师)修改)。

4、实现教师信息的录入、查询、修改和删除操作。

具体过程:【项目已经上传到附件里了没有图片(太大了)可运行,使用前请仔细阅读(试用前必读.txt)】

//** 不知道怎么开头写这个报告有两个作用交老师的报告,还要写个博客作为记录,为后面的学弟学妹做帮助。所以不知道写简单点还是复杂点。注:因为还要放到博客上所以内容也是比较狂野,表现作者个性,请读者不要介意。

1、登录 (先来个漂亮的首页)这个界面很简单不做介绍,数据提交到LoginServlet

调用 login = loginDao.getSearchByname(username, password);判断是否为空!LoginServlet代码只给出重要部分/*String sql="select * from login where name=? and password=?";

loginBean login=null;

try {

pre=con.prepareStatement(sql);

pre.setString(1, name);

pre.setString(2,password);

rs=pre.executeQuery();

if(rs.next()){

login=new loginBean();

login.setName(rs.getString("name"));

login.setPassword(rs.getString("password"));

login.setRole(rs.getByte("role"));

}

*/ //这样登录就做完了登录成功就会设置session参数为request.getSession().setAttribute("username", username);

request.getSession().setAttribute("password", password);

request.getSession().setAttribute("roleName", login.getRole());//然后跳转到Main.jsp页面如图,只放了一个连接学生列表

【】然后转到主页面(DisStudent.jsp)显示学生列表这里会判断session里的权限如果是学生(Role==1)只能显示自己的信息也只能做修改操作:如图

学生权限显示(DisStudent.jsp)列表代码:<%

if(Integer.parseInt(Role) == 1) {

com.util.StudentBean stuBean = stuDAO.getSearchByname(name, password);

//获得StudentBean的一个对象

%>

<%=stuBean.getId() %>

"/>

 "/>

"/>

"/>

"/>

"/>

"/>

"/>

">修改

<%

if(Integer.parseInt(Role) == 1){

out.print("

你丫的权限不够,无法删除!!

");

}

%>

// 这里调用了stuDAO.getSearchByname(name, password);方法封装在StudentDAO.java里面还是只给出部分重要代码String sql="select * from student where name=? and password=?";

StudentBean student=null;

try {

pre=con.prepareStatement(sql);

pre.setString(1, name);

pre.setString(2,password);

rs=pre.executeQuery();

if(rs.next()){

student=new StudentBean();

student.setAge(rs.getInt("age"));

student.setBirthday(rs.getString("birthday"));

student.setGender(rs.getString("Gender"));

student.setId(rs.getString("id"));

student.setMajor(rs.getString("major"));

student.setName(rs.getString("name"));

student.setNumber(rs.getString("number"));

student.setSex(rs.getString("sex"));

student.setPassword(rs.getString("password"));

}

***如果是教师(Role==0 || Role==2)就可以查看所有学生列表并且可以随意修改删除并实现查询功能(DisStudent.jsp)代码为: if(Integer.parseInt(Role) == 2 || Integer.parseInt(Role) == 0) {

java.util.List list = stuDAO.getSearch();

for (com.util.StudentBean stuBean:list) {

//获得StudentBean的一个对象

%>

<%=stuBean.getId() %>

"/>

 "/>

"/>

"/>

"/>

"/>

"/>

"/>

">修改

">删除

<%

}

if(Integer.parseInt(Role) == 1){

out.print("

你丫的权限不够,无法修改和删除!!

");

}

%>

添加学生

学号:

姓名:

专业:

<% }%>

这里调用了stuDAO.getSearch()方法返回一个学生(StudentBean)的列表代码为:String sql="select * from student";

ArrayList list=new ArrayList();

//获得prepareStatement对象

try {

pre=con.prepareStatement(sql);

rs=pre.executeQuery();

while(rs.next()){

StudentBean student=new StudentBean();

student.setAge(rs.getInt("age"));

student.setBirthday(rs.getString("birthday"));

student.setGender(rs.getString("Gender"));

student.setId(rs.getString("id"));

student.setMajor(rs.getString("major"));

student.setName(rs.getString("name"));

student.setNumber(rs.getString("number"));

student.setSex(rs.getString("sex"));

student.setPassword(rs.getString("password"));

list.add(student);

}

实现这个功能主要是在jsp页面上调用了一个方法stuDAO.getSearchById(request.getParameter("id"))展现出来就可以了,这个方法也是封装在StudentDAO.java里面。//讲到这里相信这个方法也不用给出代码了,根据前面的类似方法就能够写的出来了。

调用=StudentDAO.getUpdate(student,request.getParameter("id"))方法

方法具体代码为:String sql="update student set name=?,number=?,major=?,age=?,sex=?,Gender=?,birthday=?,password=? where id=" + id;

int count=0;

try {

pre=con.prepareStatement(sql);

pre.setString(1,student.getName());

pre.setString(2,student.getNumber());

pre.setString(3,student.getMajor());

pre.setInt(4,student.getAge());

pre.setString(5,student.getSex());

pre.setString(6,student.getGender());

pre.setString(7,student.getBirthday());

pre.setString(8,student.getPassword());

count=pre.executeUpdate();

}

当数据库的数据通过上面的代码修改之后直接跳转到显示学生列表(DisStudent.jsp)页面拿出修改后的数据就可以了。

【注:上述修改那个功能显示时如果是学生(判断Role==1)登录的就只显示修改生日和密码、展现实现代码如下、这里主要是通过把其他的属性type设置成”hidden”然后在显示一下就可以了】

<%

if(Integer.parseInt(Role) == 1){

com.util.StudentBean stuBean = stuDAO.getSearchById(request.getParameter("id"));

%>

学号:"/><%=stuBean.getNumber() %>

姓名:"/><%=stuBean.getName() %>

年龄:"/><%=stuBean.getAge() %>

性别:"/><%=stuBean.getSex() %>

出生日期:"/>

专业:"/><%=stuBean.getMajor() %>

学年:"/><%=stuBean.getGender() %>

密码:"/>

"/>

<% }%>       //如图

【好了下一个功能就是搜索查询了,稍微有点好玩】展现放在DisStudent.jsp里面把姓名、学号、专业三个参数可以为空传到SearchResulet.jsp 页面 这里主要调用了stuDAO.getSearch(name, number, major)方法返回一个StudentBean 的列表再循环拿出来展现。(这个方法写的稍微有点意思!)

代码:public ArrayList getSearch(String name,String number,String major){

String sql1="select * from student where name=" + "\"" + name + "\"";

String sql2="select * from student where number=" + "\"" + number + "\"";

String sql3="select * from student where major=" + "\"" + major + "\"";

String sql[] = new String[3];

sql[0] = sql1;

sql[1] = sql2;

sql[2] = sql3;

ArrayList list=new ArrayList();

//获得prepareStatement对象

try {

for(int i=0;i<3;i++){

pre=con.prepareStatement(sql[i]);

rs=pre.executeQuery();

while(rs.next()){

StudentBean student=new StudentBean();

student.setAge(rs.getInt("age"));

student.setBirthday(rs.getString("birthday"));

student.setGender(rs.getString("Gender"));

student.setId(rs.getString("id"));

student.setMajor(rs.getString("major"));

student.setName(rs.getString("name"));

student.setNumber(rs.getString("number"));

student.setSex(rs.getString("sex"));

list.add(student);

}

}

【至此应该算是本地功能可实现了】

【第二步】将项目部署到新浪云平台:(当然在这之前我已经有过经验了)

【数据库建表并插入数据】login 表:

create table login(

name varchar(20) primary key,

password char(8),

role char(8)

);

//插入的数据:

insert into login values("aaa","aaa",0);

insert into login values("student","student",1);

insert into login values("teacher","teacher",2);

//student 表:

create table student(

id int primary key auto_increment,

name varchar(10),

number varchar(10),

major varchar(10),

age int,

sex varchar(10),

Gender varchar(10),

birthday varchar(10),

password varchar(25)

);

//插入的数据

insert into student values(null,"大白菜", "6102213869", "航天班", 18, "男", "大三", "1994-08-09","wei1126shazi");

insert into student values(null,"student", "6102213871", "航天班", 18, "女", "大三", "1994-08-09","student");

insert into student values(null,"teacher", "6102213871", "航天班", 18, "女", "大三", "1994-08-09","teacher");

【好了最后一步打war包】在项目名称上右键> export> 选war file > next > 选择一个目录命名war包时要跟新浪云的应用名一样(然而之前我并没有这样命名却可以成功部署访问),接下来到 新浪云端的代码管理在应用后边 选择上传war包。等待刷新一下,就可以成功访问了,如图://看地址就知道是成功了,哈哈!

总结和感想:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:以太网口模块的原理及布局布线原则
下一篇:某大型企业私有云建设思路解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~