天津理工大学J2EE实验一实验报告1.doc
- 文档编号:4896811
- 上传时间:2023-05-07
- 格式:DOC
- 页数:7
- 大小:201.50KB
天津理工大学J2EE实验一实验报告1.doc
《天津理工大学J2EE实验一实验报告1.doc》由会员分享,可在线阅读,更多相关《天津理工大学J2EE实验一实验报告1.doc(7页珍藏版)》请在冰点文库上搜索。
计算机科学与工程系
天津理工大学
计算机科学与工程学院
实验报告
2017至2018学年第2学期
课程名称
J2EE程序设计
学号
学生姓名
年级
2015级
专业
计算机科学与技术
教学班号
实验地点
7-212
实验时间
2018年5月31日第7节至第8节
2018年6月1日第7节至第8节
主讲教师
董玉涛
辅导教师
董玉涛
实验
(一)
实验名称
用户登录处理Web程序
软件环境
STS、MySQL、Maven
硬件环境
PC机
实验目的
1、熟悉使用servlet、jsp;
2、实现Web程序与数据库的连接
实验内容(应包括实验题目、实验要求、实验任务等)
制作一个简单的用户登录处理Web程序。
在登录页面中输入正确的用户名、密码、确认密码则可以正常登录,并自动跳转到欢迎页面,并且在欢迎页面中显示当前所有已经登录的用户名列表。
数据库中用户名唯一。
登录错误则自动跳转回到登录页面,并在登录页面中提示"登录错误"。
数据库字段及内容自行设计,页面显示方式自行设计。
提交内容为Maven工程、数据库脚本文件(logindb.sql)以及针对本程序的使用说明简述(readme.txt)。
实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)
一、实验过程及源代码
1、Login.jsp
<%@pagelanguage="java"pageEncoding="UTF-8"%>
DOCTYPEHTML>
用户名:
密码:
2、LoginCheck.jsp
<%@pagelanguage="java"contentType="text/html;charset=utf-8"
pageEncoding="UTF-8"%>
<%@pageimport="java.sql.*,login.QueryBean,java.util.HashSet,java.util.Set"%>
useBeanid="querybean"scope="request"class="login.QueryBean"/> DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http: //www.w3.org/TR/html4/loose.dtd">
<%!
privatestaticStringurl="jdbc:
mysql:
//127.0.0.1:
3306/logindb?
serverTimezone=UTC&useSSL=false";
privatestaticStringusername="root";
privatestaticStringpassword="123456";%>
<%!
@SuppressWarnings("unchecked")%>
<%
ResultSetrs=null;
booleanflag=false;
%>
<%
try{
querybean.setConnection("com.mysql.cj.jdbc.Driver",url,username,password);
querybean.setQuerystatement("SELECTusernameFROMuserWHEREusername=?
ANDpassword=?
");
String[]param={request.getParameter("username"),request.getParameter("password")};
querybean.setParam(param);
rs=querybean.getResult();
if(rs.next()){
flag=true;
}
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
rs.close();
}catch(Exceptione){
e.printStackTrace();
}
}
%>
<%
if(flag){
Stringname=request.getParameter("username");
session.setMaxInactiveInterval(60);
Set
onlineUserSet=(Set
onlineUserSet.add(name);
application.setAttribute("onlineUserSet",onlineUserSet);
session.setAttribute("username",name);
%>
forwardpage="list.jsp"/> <% }else{ request.getSession().setAttribute("mrgss","用户名或密码错误"); request.getSession().setAttribute("flag","1"); response.sendRedirect("index.jsp"); } %> 3、JavaBean importjava.sql.*; publicclassQueryBean{ publicStringquery_statement;/*定义sql语句*/ publicStringparam[];/*查询条件,或者是新的记录*/ publicResultSetresult=null; publicConnectionconn; publicvoidsetParam(String[]param){ this.param=param; } publicvoidsetQuerystatement(Stringquery_statement){ this.query_statement=query_statement; } publicvoidsetConnection(StringdriverName,StringjdbcURL,Stringusername,Stringpasswd)throwsException{ Connectionconn1; Class.forName(driverName); conn1=DriverManager.getConnection(jdbcURL,username,passwd); conn1.setAutoCommit(false); this.conn=conn1; } publicResultSetgetResult(){ try{ PreparedStatementselect_stm=conn.prepareStatement(query_statement, java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); if(param! =null) for(inti=0;i select_stm.setString(i+1,param[i]); result=select_stm.executeQuery(); }catch(Exceptione){ System.out.println(e); } returnresult; } publicvoidinsertRecord()throwsSQLException,java.io.UnsupportedEncodingException{ try{ PreparedStatementinsert_stm=conn.prepareStatement(query_statement); if(param! =null) for(inti=0;i insert_stm.setString(i+1,param[i]); insert_stm.executeUpdate(); insert_stm.close(); mit(); }catch(Exceptione){ System.out.println(e); conn.rollback(); } } publicvoidupdateRecord()throwsSQLException,java.io.UnsupportedEncodingException{ try{ PreparedStatementupdate_stm=conn.prepareStatement(query_statement); if(param! =null) for(inti=0;i update_stm.setString(i+1,param[i]); update_stm.executeUpdate(); update_stm.close(); mit(); }catch(Exceptione){ System.out.println(e); conn.rollback(); } } publicvoiddeleteRecord()throwsSQLException,java.io.UnsupportedEncodingException{ try{ PreparedStatementdelete_stm=conn.prepareStatement(query_statement); if(param! =null) for(inti=0;i delete_stm.setString(i+1,param[i]); delete_stm.executeUpdate(); delete_stm.close(); mit(); }catch(Exceptione){ System.out.println(e); conn.rollback(); } } } 4、Listener importjava.util.HashSet; importjava.util.Set; importjavax.servlet.ServletContext; importjavax.servlet.ServletContextEvent; importjavax.servlet.ServletContextListener; importjavax.servlet.http.HttpSession; importjavax.servlet.http.HttpSessionEvent; importjavax.servlet.http.HttpSessionListener; publicclassLoginListenerimplementsHttpSessionListener,ServletContextListener{ privateServletContextapplication=null; publicvoidcontextDestroyed(ServletContextEventsce){ System.out.println("contextdestory"); } publicvoidcontextInitialized(ServletContextEventsce){ System.out.println("contextinit"); application=sce.getServletContext(); Set application.setAttribute("onlineUserSet",onlineUserSet); } publicvoidsessionCreated(HttpSessionEventse){ System.out.println("sessioncreate"); } @SuppressWarnings("unchecked") publicvoidsessionDestroyed(HttpSessionEventse){ HttpSessionsession=se.getSession(); Set Stringusername=(String)session.getAttribute("username"); onlineUserSet.remove(username); application.setAttribute("onlineUserSet",onlineUserSet); onlineUserSet=(Set System.out.println(onlineUserSet.toString()); System.out.println(username+"超时退出"); System.out.println("sessiondestory"); } } 二、实验效果图 7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 天津 理工大学 J2EE 实验 报告