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

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

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

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

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

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

3、学习微信API的开发。

问题描述:在本地编译好带有数据库的java Web程序后,将该程序部署到任意一个公共的云平台上,利用云平台提供的数据库,之后在利用微信开发API去读取部署到云平台上的java Web程序。

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

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

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

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

(3)【选选做】利用微信(公众号)开发API,读取公共云平台中的Web程序

操作步骤:

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

实验内容:

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

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

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

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

提示:在登录LoginServlet中修改代码,将查到的Role对象的roleId属性也保存在session中,点击“修改本人信息”链接时,直接从session获取roleId(对应用户的ID)查到该记录,然后进行修改。

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

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

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

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

f76a6b27ff44d267c4aac21c25c76a37.png

调用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=newloginBean();

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页面如图,只放了一个连接学生列表

708a55b2c03ef41ca7623f4873b5ad75.png

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

6b04dedd8cdd6af5dee4fa70f1a0badd.png

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

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

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

//获得StudentBean的一个对象

%>

"/>"/>"/>"/>"/>"/>"/>"/>">修改

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=newStudentBean();

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的一个对象

%>

"/>"/>"/>"/>"/>"/>"/>"/>">修改">删除

}

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

out.print("

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

");

}

%>

添加学生

学号:

姓名:

专业:

//如图:0ad1d4c0839ba07fa1faa286f5aa646d.png

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

ArrayList list=newArrayList();

//获得prepareStatement对象

try{

pre=con.prepareStatement(sql);

rs=pre.executeQuery();

while(rs.next()){

StudentBean student=newStudentBean();

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);

}

【】然后下一个版本就是怎样实现修改和删除的功能了,因为删除比较简单,就不在粘贴源代码了,重点介绍如何修改:当点击修改连接是跳转到Update.jsp 页面并且把要修改的id传过去,然后在Update.jsp页面通过id找到数据库里的数据并用form表单显示出来、如图:af5a84a73d3ce82923130e1461cd63bf.png

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

【】展现出来之后就是修改内容点击提交把参数提交到UpdateServlet然后在把接收到的参数封装到一个StudentBean中

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

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

intcount=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"));

%>

学号:"/>

姓名:"/>

年龄:"/>

性别:"/>

出生日期:"/>

专业:"/>

学年:"/>

密码:"/>

"/>

//如图

9f34473130b0c01d8f55bf9417349b86.png

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

代码:publicArrayList 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[] =newString[3];

sql[0] = sql1;

sql[1] = sql2;

sql[2] = sql3;

ArrayList list=newArrayList();

//获得prepareStatement对象

try{

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

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

rs=pre.executeQuery();

while(rs.next()){

StudentBean student=newStudentBean();

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);

}

}

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

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

(1)进入新浪云点击云应用SAE、进入控制台、创建应用设一个二级域名然后下面选A型 JVM数量选一个,确定创建就可以了(会提示每小时耗费5个云逗,还是比较经济实惠的)。如图b2096176d990e1e50f632d4d744f08c1.png

(2)第二步:进入刚才创建的引用左边有应用、代码管理、(当然这里我们选择上传war包,也可以用SVN在线管理代码,稍微有点复杂不做介绍了)、提示创建版本选择默认版本号为1建好之后如图8a54cfe613b0b3399ae30cee213b5571.png

(3)第三步:创建云端数据库建立数据表并实现Connection连接代码更改>左边选择数据库与缓存服务选择共享型数据库>初始化数库>管理数据库(可能会提示输入安全密码、进入数据库管理界面选择SQL如图)>  5d0995513316108f83630f2fec3a5906.png

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

createtablelogin(

namevarchar(20)primarykey,

passwordchar(8),

rolechar(8)

);

//插入的数据:

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

insertintologinvalues("student","student",1);

insertintologinvalues("teacher","teacher",2);

//student 表:

createtablestudent(

idintprimarykeyauto_increment,

namevarchar(10),

numbervarchar(10),

majorvarchar(10),

ageint,

sexvarchar(10),

Gendervarchar(10),

birthdayvarchar(10),

passwordvarchar(25)

);

//插入的数据

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

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

insertintostudentvalues(null,"teacher", "6102213871", "航天班", 18, "女", "大三", "1994-08-09","teacher");

【借下来的一步很重要】返回到上一个页面可以看到新浪云数据库的地址、端口、数据库名称、用户名、密码、如图61d36fac32d175af554ac1fdd380d5d5.png

接下来用上述信息去修改项目里connection 连接语句如图84880322a1cbb22d15a939338db13b92.png

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

7b6095e6c7b9c01f277019a48d903329.png

总结和感想:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值