天津理工大学J2EE实验一实验报告1
- 格式:doc
- 大小:201.50 KB
- 文档页数:7
第1章:引言随着社会的高速发展,人们生活水平的不断提高,以及工作节奏的加快,旅游逐渐成为一个热门的话题,因为其形式的多样,涉及的面比较广,成为人们放松压力,调节情绪的首要选择。
我国的计算机技术诞生于20世纪40年代,起步晚但是发展非常迅速,虽然把计算机引入管理的领域也就只有短短的30年,但是,却给管理领域带来了翻天覆地的变化。
伴随计算机的普及,人们也愿意并习惯通过计算机来获取信息资源,人们可以在最短的时间内获取旅游信息,然后拟定适合自己的旅游方案,大大的节省自己的时间、精力,获得最大限度的身心满足。
传统的管理方法采用的是人管理人的方法,由相关人员去制定一些规定并监督执行,这当然会给管理带来很多的主观性,而传统的旅游信息管理也是采用人力的自然管理和纸制记录。
在查询,更新时都是由人一条一条的记录,这样不仅需要大量的人力还需要大量的办公用品。
这必然造成对人力和物力的浪费,而且由于工作量大并且繁琐,就会带来效率方面的低下,而这些就会无形地使利润下滑。
旅游信息管理系统正是在这样的背景下应运而生了。
现实的要求是旅游信息管理需要一个既可以节省人力物力又可以节省财力,并且在同等时间的基础上提高效率,从而提高整个利润。
旅游信息管理系统采取的是信息分类管理的理念,根据旅游所涉及的方方面面的具体要求进行系统开发的。
因此本次借此次实训的机会我们根据社会对于旅游的管理问题上而做的一个地方的旅游信息管理系统;安康旅游信息管理系统。
旅游信息管理信息系统是以客户机/服务器结构为基础。
当客户发出请求后服务器会快速的对其的请求作出响应并解决其请求。
这就解决了在人力方面的浪费。
由于请求和解决请求的过程都是通过计算机完成的这样就解决了人力的繁琐,还避免了传统管理方法的一些由于人的疏忽造成的错误。
提高了工作的正确率和可靠性。
本次实训设计的安康旅游信息管理系统具体内容包括:系统管理员模块、旅游团信息模块、景区信息模块、退出系统模块等。
并在这些模块中完成了各个环节的添加、修改、删除、查询等功能。
j2ee实验报告J2EE实验报告引言:J2EE(Java 2 Platform, Enterprise Edition)是一种用于开发企业级应用程序的Java平台。
它提供了一套强大的工具和框架,使开发人员能够构建可扩展、可靠且安全的应用程序。
本实验报告将介绍我在J2EE实验中的学习和实践经验。
一、J2EE概述J2EE是一种基于Java语言的企业级应用开发平台,它包含了一系列的规范和API(Application Programming Interface),用于开发、部署和管理分布式应用程序。
J2EE的核心组件包括Servlet、JSP、EJB和JDBC等,它们共同构成了一个完整的应用程序框架。
二、Servlet和JSPServlet和JSP是J2EE中常用的Web开发组件。
Servlet是运行在服务器端的Java程序,用于接收和处理客户端的请求。
JSP(JavaServer Pages)则是一种将Java代码嵌入到HTML页面中的技术,它可以动态生成HTML内容。
在实验中,我学习了如何使用Servlet和JSP开发一个简单的用户管理系统。
通过编写Servlet和JSP,我能够实现用户注册、登录和信息展示等功能。
三、EJBEJB(Enterprise JavaBeans)是J2EE中的另一个重要组件,它提供了一种分布式的、事务性的应用程序开发模型。
EJB可以将应用程序逻辑封装成可重用的组件,这些组件可以在不同的服务器上进行部署和调用。
在实验中,我学习了如何使用EJB开发一个简单的银行账户管理系统。
通过定义和实现EJB的接口和实现类,我能够实现账户的增删改查等操作。
四、JDBCJDBC(Java Database Connectivity)是一种用于与数据库进行交互的API。
在J2EE应用程序中,数据库是非常重要的数据存储和管理工具。
通过JDBC,我们可以使用Java代码连接数据库,并执行SQL语句进行数据的读写操作。
实验一J2EE开发环境的安装与配置实验目的:1. 掌握J2EE开发环境的安装与配置方法2. 掌握J2EE开发环境的使用方法3. 了解Tomcat服务器主要配置文件的作用、掌握基本的修改方法阿实验内容及步骤:1. 安装JDK,配置环境变量JAVA_HOME和CLASSPATH,请简要说明这两个环境变量的主要作用:JA V A_HOME的作用:它指向JDK的安装根目录,Eclipse/Tomcat就是通过搜索JA V A_HOME变量来找到并使用安装好的jdk。
CLASSPATH环境变量的作用:作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPATH来寻找类的。
2. 安装Tomcat,并测试安装是否正确。
简要介绍Tomcat安装目录中bin、conf、webapps文件夹的作用:Bin 作用:存放Windows或Linux平台上用于启动和停止Tomcay的脚本文件Conf 作用:存放Tomcat服务器的各种配置文件,其中最重要的是server.xmlWebapps 作用:当发布Web应用时,默认情况下会将Web应用的文件存放于此目录中。
3. 简述如何修改和测试tomcat服务器的端口?修改Server.xml文件,把8080端口改成80就可以了。
8080是Tomcat服务器的默认的端口号。
我们可以通过修改Tomcat服务器的conf目录下的主配置文件server.xml来更改.用记事本打开server.xml文件,找到如下部分:以下为引用的内容:<Connector port="8080" maxHttpHeaderSize="8192"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" redirectPort="8443" acceptCount="100"connectionTimeout="20000" disableUploadTimeout="true" />将其中的port="8080"更改为新的端口号即可,如将“8080”改为“9098”等。
《JAVA EE企业应用开发》综合性、设计性实验成绩单开设时间:2012学年第一学期班级10信管1班学号 1.2010302601332.2010305601313.201030560135 姓名 1.张伟东2.吴雨瑞3.郑易东实验题目实验一开发struts2程序实验成绩教师签名《JAVA EE企业应用开发》实验报告实验题目:开发struts2程序实验指导教师:杨春实验组长(姓名+学号):张伟东201030560133组员(姓名+学号):张伟东201030560133吴雨瑞201030560131郑易东201030560135实验时间:2012年11月组长签名:(手写)2012年12 月 2 日1、实验目的(1分)1).掌握用不同框架模式开发JAVA EE程序;2).使用JSP和不同框架混合模式编写一个简单的用户信息管理系统(具体描述见实验步骤部分)2、实验内容(2分)考虑实现一个数据库单表操作的简单JAVA EE WEB应用,使用struts2 框架框架中的实现.系统需求如下:普通用户功能:用户登录系统;用户注册;修改个人信息;登录后查看系统资源。
系统管理员:全部用户列表;根据姓名模糊查询符合条件的用户或用户列表;删除用户。
3、实验步骤与结果(3分)主要开发步骤如下:1)数据可设计,生成数据库;2)创建web project,名为xs;3)功能模块包划分;4)搭建系统框架;5)普通用户功能实现:注册、登录、修改个人信息等;6)系统管理员功能实现:查询、删除等。
实现结果,截图如下:数据库:Jsp界面(部分):4、架构设计+源码(2分)架构设计如下图:源码(主要):Guanli.actionpackage action;import java.util.Map;import service.IGuanliService;import service.impl.GuanliService;import vo.Guanli;import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class GuanliAction extends ActionSupport{protected Guanli guanli;protected IGuanliService guanliService;protected String username;protected String password;public Guanli getGuanli() {return guanli;}public void setGuanli(Guanli guanli) {this.guanli = guanli;}public IGuanliService getGuanliService() {return guanliService;}public void setGuanliService(IGuanliService guanliService) {this.guanliService = guanliService;}public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String execute() throws Exception{Guanlig=guanliService.validateGuanli(guanli.getUsername(),guanli.getPassword());if(g!=null){Map session=ActionContext.getContext().getSession();session.put("guanli", g);return SUCCESS;}else{return ERROR;}}}Zhuce.actionpackage action;import java.util.Map;import service.IZhuceService;import vo.Guanli;import vo.Zhuce;import java.util.List;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class ZhuceAction extends ActionSupport{protected Zhuce zhuce;protected IZhuceService zhuceService;private String username;private String password;private String sex;private String address;public Zhuce getZhuce() {return zhuce;}public void setZhuce(Zhuce zhuce) {this.zhuce = zhuce;}public IZhuceService getZhuceService() {return zhuceService;}public void setZhuceService(IZhuceService zhuceService) {this.zhuceService = zhuceService;}public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String execute() throws Exception{Zhucez=zhuceService.validateZhuce(zhuce.getUsername(),zhuce.getPassword());List zcs=zhuceService.getZhuce(zhuce.getUsername());Map request=(Map)ActionContext.getContext().get("request");request.put("zcs", zcs);if(z!=null){Map session=ActionContext.getContext().getSession();session.put("zhuce", z);return SUCCESS;}else{return ERROR;}}public String zc() throws Exception{zhuceService.saveZhuce(zhuce);return SUCCESS;}public String grxx() throws Exception{List zcs=zhuceService.getZhuce(username);Map request=(Map)ActionContext.getContext().get("request");request.put("zcs", zcs);return SUCCESS;}public String sc() throws Exception{zhuceService.dl(zhuce.getUsername());List zcs=zhuceService.getZhuce1();Map request=(Map)ActionContext.getContext().get("request");request.put("zcs", zcs);return SUCCESS;}public String xg() throws Exception{zhuceService.xiugai(zhuce.getUsername(),zhuce.getPassword(),zhuce.getSex(),zhuce.get Address());List zcs=zhuceService.getZhuce(zhuce.getUsername());Map request=(Map)ActionContext.getContext().get("request");request.put("zcs", zcs);return SUCCESS;}public String cz() throws Exception{List zcs=zhuceService.cz(zhuce.getUsername());Map request=(Map)ActionContext.getContext().get("request");request.put("zcs", zcs);return SUCCESS;}}GuanliDaopackage dao.impl;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import java.util.List;import dao.BaseDAO;import dao.IGuanliDAO;import vo.Guanli;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;public class GuanliDAO extends BaseDAO implements IGuanliDAO{public Guanli validateGuanli(String username,String password){Session session=getSession();String hql="from Guanli g where ername=? and g.password=?";Query query=session.createQuery(hql);query.setParameter(0,username);query.setParameter(1, password);List guanlis=query.list();if(guanlis.size()!=0){Guanli guanli=(Guanli)guanlis.get(0);return guanli;}session.close();return null;}}ZhuceDaopackage dao.impl;import java.util.List;import dao.BaseDAO;import dao.IZhuceDAO;import vo.Zhuce;import org.hibernate.Query;import org.hibernate.classic.Session;import org.hibernate.Transaction;public class ZhuceDAO extends BaseDAO implements IZhuceDAO{public void saveZhuce(Zhuce zhuce){Session session=getSession();Transaction tx=session.beginTransaction();session.save(zhuce);mit();session.close();}public List getZhuce(String username){Session session=getSession();Query query=session.createQuery("from Zhuce z where ername=?");query.setParameter(0, username);List zcs=query.list();session.close();return zcs;}public List getZhuce1(){Session session=getSession();Query query=session.createQuery("from Zhuce z");List zcs=query.list();session.close();return zcs;}public void dl(String username){Session session=getSession();Query query=session.createQuery("delete Zhuce z where ername=?");query.setParameter(0, username);query.executeUpdate();}public void xiugai(String username,String password,String sex,String address){ Session session=getSession();Query query=session.createQuery("update Zhuce z setername=?,z.password=?,z.sex=?,z.address=? where ername=?");query.setParameter(0, username);query.setParameter(1, password);query.setParameter(2, sex);query.setParameter(3, address);query.setParameter(4, username);query.executeUpdate();}public Zhuce validateZhuce(String username,String password){Session session=getSession();String hql="from Zhuce z where ername=? and z.password=?";Query query=session.createQuery(hql);query.setParameter(0,username);query.setParameter(1, password);List zhuces=query.list();if(zhuces.size()!=0){Zhuce zhuce=(Zhuce)zhuces.get(0);return zhuce;}session.close();return null;}public List cz(String username){Session session=getSession();Query query=session.createQuery("from Zhuce z where ername=?");query.setParameter(0, username);List zcs=query.list();session.close();return zcs;}}Struts.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "/dtds/struts-2.1.dtd"><struts><include file="struts-default.xml"/><package name="default" extends="struts-default"><action name="zc" class="zhuceAction" method="zc"><result name="success">/success.jsp</result></action><action name="grxx" class="zhuceAction" method="grxx"><result name="success">/grxx.jsp</result></action><action name="cz" class="zhuceAction" method="cz"><result name="success">/cz.jsp</result></action><action name="sc" class="zhuceAction" method="sc"><result name="success">/sc.jsp</result></action><action name="xg" class="zhuceAction" method="xg"><result name="success">/xg.jsp</result></action><action name="dl2" class="guanliAction"><result name="success">/dl2s.jsp</result><result name="error">/dl2.jsp</result></action><action name="dl" class="zhuceAction"><result name="success">/dls.jsp</result><result name="error">/dl.jsp</result></action></package></struts>applicationContext.xml<?xml version="1.0" encoding="UTF-8"?><beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd"><bean id="dataSource"class="mons.dbcp.BasicDataSource"><property name="driverClassName"value="com.mysql.jdbc.Driver"></property><property name="url"value="jdbc:mysql://localhost:3306/xs"></property><property name="username" value="root"></property><property name="password" value="123"></property></bean><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource"><ref bean="dataSource" /></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop></props></property><property name="mappingResources"><list><value>vo/Zhuce.hbm.xml</value><value>vo/Guanli.hbm.xml</value></list></property></bean><bean id="baseDAO" class="dao.BaseDAO" abstract="true"><property name="sessionFactory"><ref bean="sessionFactory"/></property></bean><bean id="zhuceDAO" class="dao.impl.ZhuceDAO" parent="baseDAO"></bean><bean id="zhuceService" class="service.impl.ZhuceService"><property name="zhuceDAO"><ref bean="zhuceDAO"/></property></bean><bean id="zhuceAction" class="action.ZhuceAction"><property name="zhuceService"><ref bean="zhuceService"/></property></bean><bean id="guanliDAO" class="dao.impl.GuanliDAO" parent="baseDAO"> </bean><bean id="guanliService" class="service.impl.GuanliService"><property name="guanliDAO"><ref bean="guanliDAO"/></property></bean><bean id="guanliAction" class="action.GuanliAction"><property name="guanliService"><ref bean="guanliService"/></property></bean></beans>Dl.jsp(登录)<%@ page contentType="text/html;charset=utf-8" %><html><body><form action="dl.action" method="post">用户名:<input type="text" name="ername"/><br>密码:<input type="password" name="zhuce.password"/><br> <input type="submit" value="登录"></form></body></html>Grxx.jsp(显示会员信息)<%@ page contentType="text/html;charset=utf-8" %><%@ taglib prefix="s" uri="/struts-tags" %><html><head></head><body><s:iterator value="#request['zcs']" id="zhuce"><s:property value="#ername"/><s:property value="#zhuce.password"/><s:property value="#zhuce.sex"/><s:property value="#zhuce.address"/></s:iterator><a href="dls.jsp">返回</a></body></html>Zhuce.jsp(注册)<%@ page contentType="text/html;charset=utf-8" %><HTML> <BODY><table align="center"><tr><td height=50></td></tr><tr><td><form action="zc.action" method="post">用户名:<br><input type="text" name="ername"/><p>密码:<br><input type="password" name="zhuce.password"/><p>性别:<br><input type="text" name="zhuce.sex"/><p>地址:<br><input type="text" name="zhuce.address"/><p><input type="submit" value="注册" ></form> </td></tr><tr><td><a href="d.jsp">登录</a></td></tr></table></BODY></HTML>5、结论与讨论(2分)通过这次实验,我们小组成员认识到应用框架的方便之处和它的强大之处,虽然只是应用了其中的一小部分,但为接下去的学习打下基础。
实验一
一、实验目的:
了解Web的开发环境,熟悉JAVA的运行环境和使用。
二、实验过程:
●首先打开实验软件,创建工程;
●然后进行代码编写,编写输出“Hello!“的小程序;
●最后编译代码,运行结果。
三、实验代码:
public class s {
public static void main(String args[])
{
System.out.println("Hello!");
}
}
四、实验过程及运行结果(截图):
图一运行结果
图二创建项目(工程)
图三代码编写
实验二
1.打开MyEclipse,创建Web项目;
2.直接运行Server Application,将地址复制粘贴到浏览器中;
3.运行查看结果,期间可多次启动服务器,观察刷新网页后的显示
结果。
实验三
1.打开Tomcat,开始运行
2.将Webroot重命名复制到Tomcat的Webapps中
3.输入地址,查看运行结果。
J2EE实验报告一、实验目的1.认识JavaBean,初步了解JavaBean的应用,掌握JavaBean的特殊属性;2.用JavaBean编写简单的程序,在Jsp中使用JavaBean;3.了解DAO和VO,编写简单的DAO和VO;4.在JSP中使用DAO和VO。
二、实验要求1.编写JavaBean:Book.java,含有属性:bookid(String)bookname(String),bookprice(String),并编写getter,setter方法2.在数据库中建立表格T_BOOK(BOOKID,BOOKNAME,BOOKPRICE)插入一些记录;3.编写数据库访问类:BookDAO.java,建立book.java与数据库之间的联系,使程序能实现从数据库中查询相关信息并修改的功能。
4.制作一个查询页面,输入两个数字,显示价格在两个数值之间的图书信息,使用DAO和VO实现;5. 实现图书记录的删除功能,首先显示全部图书的资料,通过图书后面的“删除”功能链接,删除该图书记录,要求使用DAO和VO实现。
三、实验内容1. 编写Book.java,含有属性:bookid(String)bookname(String),bookprice(double),并编写getter,setter方法。
实验代码如下:package javabeans;//定义BOOK类package javabeans;public class Book {private String bookid;private String bookname;private double bookprice;public String getBookid() {return bookid;}public void setBookid(String bookid) {this.bookid = bookid;}public String getBookname() {return bookname;}public void setBookname(String bookname) {this.bookname = bookname;}public double getBookprice() {return bookprice;}public void setBookprice(double bookprice) {this.bookprice = bookprice;}}2.在数据库中建立表格T_BOOK(BOOKID, BOOKNAME, BOOKPRICE)插入一些记录。
j2ee实习报告第1篇第2篇第3篇第4篇第5篇更多顶部目录第一篇:j2ee课程实训总结报告第二篇:j2ee开发工程师第三篇:j2ee实训大纲第四篇:j2ee最佳实践总结第五篇:j2ee学习建议更多相关范文正文第一篇:j2ee课程实训总结报告宁波大红鹰学院2020-2020学年第一学期2020级专科软件技术专业《j2ee框架技术实训》专业:软件技术学生姓名:实训课题:论坛管理系统指导教师:一、实训任务1. 在myeclipse derby中建立数据库 lt(date name content id)2. 编写hibernate程序向数据内插入数据3. 添加structs,信息发送:游客信息的发送。
4. 管理员的注册和登录。
如果登录失败,转入注册页面。
5. 消息的查询:根据id号,进行信息的查询。
6. 消息的管理:包括消息的修改和删除。
二、功能设计1、系统功能分析:这是一个使用sh框架实现用户的登录、注册、删除、修改等功能的系统。
首先在登录界面(index.jsp)输入用户名及密码进行登录。
若登录成功则跳转到用户主页,该页面可以进行删除、修改、查询等操作;若登录失败则进入注册界面,注册完毕后即可登录了。
2、数据库设计:create table lt(id char(10) primary key,name char(10),contentchar(50),date char(20));3、代码设计:hibernate插入数据session s1=hibernatesessionfactory.getsession(); transaction t=s1.begintransaction();lt lt=nee(name);lt.setcontent(content);lt.setdate(date);s1.save(lt);mit();hibernatesessionfactory.closesession();structs信息发送session s1=hibernatesessionfactory.getsession(); transaction t=s1.begintransaction();lt lt=nee(name);lt.setcontent(content);lt.setdate(date);s1.update(lt);mit();hibernatesessionfactory.closesession();用户登录和注册session s=hibernatesessionfactory.getsession();string hql=select lt from lt as lt e=‘+name+’; query q=s.createquery(hql); listlt l=q.list();for(lt a:l){out_id=a.getid();out_name=a.getname();}this.setname(out_name);hibernatesessionfactory.closesession();session s1=hibernatesessionfactory.getsession();transaction t=s1.begintransaction();lt lt=nee(name);lt.setcontent(content);lt.setdate(date);s1.save(lt);mit();hibernatesessionfactory.closesession();消息查询session s=hibernatesessionfactory.getsession();string hql=select lt from lt as lt e=‘+name+’; query q=s.createquery(hql); listlt l=q.list();for(lt a:l){out_id=a.getid();out_name=a.getname();out_content=a.getcontent();out_date=a.getdate();}this.setid(out_id);this.setname(out_name);this.setcontent(out_content);this.setdate(out_date);hibernatesessionfactory.closesession();消息管理session s1=hibernatesessionfactory.getsession();transaction t=s1.begintransaction();lt lt=nee(name);lt.setcontent(content);lt.setdate(date);s1.update(lt);mit();hibernatesessionfactory.closesession();三、总结经过这次的实训,让我对ssh框架有了很深的了解,虽然过程中出现的一些问题,但是在老师和同学的细心指导下,最终玩成了这个项目,这对于即将要制作毕业作品的我来说无疑是最大的帮助。
天津理工大学计算机科学与工程学院实验报告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<%@ page language="java" pageEncoding="UTF-8"%><!DOCTYPE HTML><html><head><title>用户登陆</title></head><body><form action="${pageContext.request.contextPath }/servlet/LoginServlet" method="post"> 用户名:<input type="text" name="username"><br/>密码:<input type="password" name="password"><br/><input type="submit" value="登陆"></form></body></html>2、LoginCheck.jsp<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="UTF-8"%><%@page import="java.sql.*,login.QueryBean,java.util.HashSet,java.util.Set"%><jsp:useBean id="querybean" scope="request" class="login.QueryBean" /><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><body><%!private static String url = "jdbc:mysql://127.0.0.1:3306/logindb?serverTimezone=UTC&useSSL=false";private static String username = "root";private static String password = "123456";%><%! @SuppressWarnings("unchecked") %><%ResultSet rs = null;boolean flag = false;%><%try {querybean.setConnection("com.mysql.cj.jdbc.Driver", url, username, password);querybean.setQuerystatement("SELECT username FROM user WHERE username=? AND password=?");String[] param = { request.getParameter("username"), request.getParameter("password") };querybean.setParam(param);rs = querybean.getResult();if (rs.next()) {flag = true;}} catch (Exception e) {e.printStackTrace();} finally {try {rs.close();} catch (Exception e) {e.printStackTrace();}}%><%if (flag) {String name=request.getParameter("username");session.setMaxInactiveInterval(60);Set<String> onlineUserSet = new HashSet<String>();onlineUserSet = (Set<String>) application.getAttribute("onlineUserSet");onlineUserSet.add(name);application.setAttribute("onlineUserSet", onlineUserSet);session.setAttribute("username", name);%><jsp:forward page="list.jsp" /><%} else {request.getSession().setAttribute("mrgss", "用户名或密码错误");request.getSession().setAttribute("flag", "1");response.sendRedirect("index.jsp");}%></body></html>3、JavaBeanimport java.sql.*;public class QueryBean {public String query_statement; /* 定义sql语句*/public String param[]; /* 查询条件,或者是新的记录*/public ResultSet result = null;public Connection conn;public void setParam(String[] param) {this.param = param;}public void setQuerystatement(String query_statement) {this.query_statement = query_statement;}public void setConnection(String driverName, String jdbcURL, String username, String passwd) throws Exception {Connection conn1;Class.forName(driverName);conn1 = DriverManager.getConnection(jdbcURL, username, passwd);conn1.setAutoCommit(false);this.conn = conn1;}public ResultSet getResult() {try {PreparedStatement select_stm = conn.prepareStatement(query_statement,java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONL Y);if (param != null)for (int i = 0; i < param.length; i++)select_stm.setString(i + 1, param[i]);result = select_stm.executeQuery();} catch (Exception e) {System.out.println(e);}return result;}public void insertRecord() throws SQLException, java.io.UnsupportedEncodingException { try {PreparedStatement insert_stm = conn.prepareStatement(query_statement);if (param != null)for (int i = 0; i < param.length; i++)insert_stm.setString(i + 1, param[i]);insert_stm.executeUpdate();insert_stm.close();mit();} catch (Exception e) {System.out.println(e);conn.rollback();}}public void updateRecord() throws SQLException, java.io.UnsupportedEncodingException {try {PreparedStatement update_stm = conn.prepareStatement(query_statement);if (param != null)for (int i = 0; i < param.length; i++)update_stm.setString(i + 1, param[i]);update_stm.executeUpdate();update_stm.close();mit();} catch (Exception e) {System.out.println(e);conn.rollback();}}public void deleteRecord() throws SQLException, java.io.UnsupportedEncodingException { try {PreparedStatement delete_stm = conn.prepareStatement(query_statement);if (param != null)for (int i = 0; i < param.length; i++)delete_stm.setString(i + 1, param[i]);delete_stm.executeUpdate();delete_stm.close();mit();} catch (Exception e) {System.out.println(e);conn.rollback();}}}4、Listenerimport java.util.HashSet;import java.util.Set;import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;public class LoginListener implements HttpSessionListener, ServletContextListener { private ServletContext application = null;public void contextDestroyed(ServletContextEvent sce) {System.out.println("context destory");}public void contextInitialized(ServletContextEvent sce) {System.out.println("context init");application = sce.getServletContext();Set<String> onlineUserSet = new HashSet<String>();application.setAttribute("onlineUserSet", onlineUserSet);}public void sessionCreated(HttpSessionEvent se) {System.out.println("session create");}@SuppressWarnings("unchecked")public void sessionDestroyed(HttpSessionEvent se) {HttpSession session = se.getSession();Set<String> onlineUserSet = (Set<String>) application.getAttribute("onlineUserSet");String username = (String) session.getAttribute("username");onlineUserSet.remove(username);application.setAttribute("onlineUserSet", onlineUserSet);onlineUserSet = (Set<String>) application.getAttribute("onlineUserSet");System.out.println(onlineUserSet.toString());System.out.println(username + "超时退出");System.out.println("session destory");}}二、实验效果图。