J2EE实验报告
J2EE技术实验报告四
实验报告填写时间:图1 登录界面图2 首页2、增加用户function addusercheck() {var values=document.getElementById("adduserform").elements;//alert("***"+values[0].value);if(nullcheck(values[1].value)){alert("请输入用户名");return false;}if(nullcheck(values[2].value)){alert("请输入昵称");return false;}}图3 添加用户页面图4 添加用户成功界面3、安全退出case "safelogout":{//if(request.getSession().getAttribute("user")!=null){request.getSession().removeAttribute("user");}response.sendRedirect("Login");}break;4.cookie的使用case "showonlinepeople":{//Cookie[] kk=request.getCookies();int ck=0;for(ck=0;ck<kk.length;ck++){if(kk[ck].getName().equals("onlinelist")){String[] names=kk[ck].getValue().split("&");out.write("<table style='margin:0px auto;'>" +"" +"<tr>" +"<td colspan='2'>" +"在线人数" +names.length+"" +"</td>" +"</tr>" +"<tr>" +"<th>ID</th>" +"<th>姓名</th>" +"</tr>" +"");for(int l=0;l<names.length;l++){String[]idname=.URLDecoder.decode(names[l],"utf-8").split("#");out.write("<tr>" +"<td style='width:60px;'>" +"" +idname[0]+"</td>" +"<td style='width:60px;'>" +idname[1]+"</td>" +"" +"</tr>");}out.write("</table>");break;}}if(ck>=kk.length){out.print("暂时没有在线的人");}}break;图5 在线人数统计及时间显示五、实验中遇到的问题及解决办法:1、在使用cookie时,出现了很多问题;例如:有时候,忘记了清理缓存,源代码没有问题,在这一块纠结了半天,最后,想到是没有清理缓存。
J2ee实训总结
J2EE实训项目总结本次J2EE实训项目为期8天,培训公司是前锋科技有限有限公司,培训对象是计本121,122班的全体学生,本次的实训让学生和老师都受益匪浅,特别是让学生学到的不仅仅是课内还有课外,实训让学生们的课内知识得到了巩固,专业知识、编程水平都有很大的提高,这次实训具有一定意义,下面主要对本次实训作个总结:一.实训内容本次实训主要分为健康测试项目、android动画制作和小游戏的制作。
首先学习了UI的设计,如何使界面漂亮,美观,巩固了listview,gridview,的使用,让学生学会了动画进入界面的,和会移动的画廊等等。
在这三个项目中,除了让学生明白工作中需要能力,素质,知识之外,更重要的是学会了如何去完成一个任务,懂得了享受工作。
当遇到问题,冷静,想办法一点一点的排除障碍,到最后获取成功,一种自信心由然而生,这就是工作的乐趣。
有时候也需要虚心请教,从别人的身上真得能学习到不自己没有的东西,每一次的挫折只能使学生更接近成功。
小游戏项目,是七个人组成小组完成的,由组长带领其他6人,分配任务,每个人,都发挥自己的长处,更好地去完成任务。
对于团队开发来说,团结一致使学生深有体会。
团队的合作注重沟通和信任,不能不屑于做小事,永远都要保持亲和诚信,把专业理论运用到具体实践中,不仅加深学生对理论的掌握和运用,还让学生拥有了一次又一次难忘的开发经历,这是也是实训最大的收获。
最后实训结束对前三名的团队进行奖励,对他们进行鼓励,以及认识到团队合作的意义。
二.实训意义(1)实训是计算机科学与技术专业学生的一门主要实践性课程。
其目的是使学生们进一步加深对所学知识的理解,理论联系实际,巩固所学有关计算机基础理论知识和基本技能,学习有关计算机最新技术方面的应用,增强学生对计算机在社会生活,社会生产中应用的感性认识,深入了解计算机在各个领域中的应用状况。
(2)生产实习是学校教学的重要补充部分,是区别于普通学校教育的一个显著特征,是教育教学体系中的一个不可缺少的重要组成部分和不可替代的重要环节。
J2EE上机报告二
3.错误提示未出现:未在login页面接受并输出提示
4.505错误:TCP/IP连接错误
5.到sun.misc.BASE64Decoder,Eclipse报错Access restriction
三、实验步骤:
1.完成三个基本页面Login,LoginCl,Main
2.实现页面的基本连接通信
3.连接数据库(页面JDBCDemol),实现数据库验证。
4.MVC开发模式:
5.用PreparedStatement代替Statement(防止SQLb.properties,方便连接不同数据库。
7.sun.misc.BASE64编码对用户输入的密码进行MD5加密
四、实验结果与结论:(核心代码和程序的运行效果)
1.Login页面:
2.LoginCl处理后页面:当用户名或密码错误时,输出提示
3.Main页面:
4.数据库界面
五、实验中遇到的问题及解决办法:
1.404错误:form表单的action和method属性写错了
UserManage 2.0:
b)JavaBean
c)到数据库验证用户登录(JDBC)
d)写一个工具类JdbcUtil,抽取数据库配置文件db.properties,方便连接不同数据库。
e)单元测试(JUnit)
f)MVC开发模式
g)数据加密(BASE64、MD5)
写出用户管理系统的前两个版本,利用JDBC到数据库验证实现用户登录,试着写一个工具类jdbcUtil,用PreparedStatement代替Statement(防止SQL注入漏洞),用sun.misc.BASE64编码对用户输入的密码进行MD5加密。
实验报告
J2EE最佳实践总结[5篇范文]
J2EE最佳实践总结[5篇范文]第一篇:J2EE最佳实践总结J2EE最佳实践总结1、始终使用 MVC 框架。
2、在每一层都应用自动单元测试和测试管理。
3、按照规范来进行开发,而不是按照应用服务器来进行开发。
4、从一开始就计划使用 J2EE 安全性。
5、创建您所知道的。
6、当使用 EJB 组件时,始终使用会话 Facades.7、使用无状态会话 bean,而不是有状态会话 bean.8、使用容器管理的事务。
9、将 JSP 作为表示层的首选。
10、当使用HttpSession 时,尽量只将当前事务所需要的状态保存其中,其他内容不要保存在 HttpSession 中。
11、在WebSphere 中,启动动态缓存,并使用WebSphere servlet 缓存机制。
12、为了提高程序员的工作效率,将 CMP 实体 bean 作为 O/R 映射的首选解决方案。
1.始终使用 MVC 框架。
MVC 框架可以将业务逻辑(Java beans 和EJB 组件)、控制器逻辑(Servlets/Struts 动作)、表示层(JSP、XML/XSLT)清晰地分离开来。
良好的分层可以带来许多好处。
MVC 框架对于成功使用J2EE 是如此重要,以致没有其他最佳实践可以与其相提并论。
模型-视图-控制器(MVC)是设计 J2EE 应用程序的基础。
MVC 将您的程序代码简单地划分下面几个部分:负责业务逻辑的代码(即模型——通常使用 EJB 或者普通的 Java 对象来实现)。
负责用户界面显示的代码(即视图——通常通过JSP 及标记库来实现,有时也使用 XML 和 XSLT 来实现)。
负责应用程序流程的代码(即控制器——通常使用Java Servlet或像 Struts 控制器这样的类来实现)。
如果您不遵循基本的 MVC 框架,在开发过程中就会出现许多的问题。
最常见的问题就是在视图部分添加了太多的成分,例如,可能存在使用 JSP 标记来执行数据库访问,或者在 JSP 中进行应用程序的流程控制,这在小规模的应用程序中是比较常见的,但是,随着后期的开发,这样做将会带来问题,因为JSP 逐步变得越来越难以维护和调试。
j2ee实验一实验报告
《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分)通过这次实验,我们小组成员认识到应用框架的方便之处和它的强大之处,虽然只是应用了其中的一小部分,但为接下去的学习打下基础。
J2EE实验报告 JAVABEAN和数据库元数据编程
{ return maxConnections; } public int getMaxTablesInselect() { return maxTablesInSelect; } }
dbmd = conn.getMetaData(); drivername = dbmd.getDriverName(); databaseproduct_name = dbmd.getDatabaseProductName(); maxLen = dbmd.getMaxIndexLength(); maxcharliteralLength = dbmd.getMaxCharLiteralLength(); maxColumnsInTable = dbmd.getMaxColumnsInTable(); maxRowsize = dbmd.getMaxRowSize(); maxConnections = dbmd.getMaxConnections(); maxTablesInSelect = dbmd.getMaxTablesInSelect(); } public String getDriverName() { return drivername; } public String getDatabaseproduct_name() { return databaseproduct_name; } public String getUrl() { return url; } public int getMaxLen() { return maxLen; } public int getMaxcharliteralLength() { return maxcharliteralLength; } public int getMaxColumnsInTable() { return maxColumnsInTable; } public int getMaxrowSize() { return maxRowsize; } public int getMaxconnections()
J2EE_实验报告7_熟悉hibernate框架
J2EE实验报告学号姓名班级上课地点教师上课时间实验六熟悉hibernate框架1. 实验目的1.1.掌握hibernate框架搭建步骤;2. 实验环境2.1 MyEclipse2.2 Window XP2.3 MySQL4. 教师批改意见成绩签字:日期:实验内容1功能描述搭建hibernate框架,熟悉hibernate框架搭建步骤。
并编写一个测试代码,实现简单的业务处理。
2实验步骤2.1 搭建hibernate框架(0) 新建web project项目,项目名称自定义(我取名为EX_Hibernate);(1) 将hibernate需要的jar包拷贝到lib下;2.2 新建bean类在src下新增包.xmut.bean(bean必须,前缀包路径可自定义),在该包下新建类News.java:package .xmut.bean;public class News {private int id;private String title;private String content;//省略get set 方法}2.3 新建bean.hbm.xml文件在News.java 同一目录下,新建News.hbm.xml文件<?xml version="1.0"encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"> <hibernate-mapping><class name=".xmut.bean.News"table="table1"> <id name="id"type="integer"><column name="id"/><generator class="native"/></id><property name="title"type="ng.String"><column name="title"length="10"/></property><property name="content"type="ng.String"><column name="content"length="10"></column></property></class></hibernate-mapping>2.4 新建hibernate.cfg.xml文件在src下新建hibernate.cfg.xml文件<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/dtd/hibernate-configuration-3.0.d td"><hibernate-configuration><!-- 配置session节点 --><session-factory name="foo"><!-- 配置连接数据库信息 : user password url driver_class --><property name="ername">root</property><property name="connection.password">1234</property><propertyname="connection.url">jdbc:mysql://127.0.0.1:3306/bag</propert y><propertyname="connection.driver_class">com.mysql.jdbc.Driver</property ><!-- 配置数据库方言 --><propertyname="dialect">org.hibernate.dialect.MySQLDialect</property><!-- 配置进行数据库操作时,是否需要显示sql语句 --><property name="show_sql">true</property><!-- 配置如何通过反射生成数据表 --><property name="hbm2ddl.auto">create</property><!-- 关联 hibernate 映射文件 --><mapping resource="cn/edu/xmut/bean/News.hbm.xml"/> </session-factory></hibernate-configuration>运行结果:对应的bag数据库中出现对应的table1表以及表中相应的数据。
湘潭大学j2ee实验报告(绝对完整)
实验一、应用服务器集成1.整合apache和tomcat 安装apache到c:\j2ee\Apache中解压tomcat到c:\j2ee\Tomcat中输入测试http://localhost/输入测试http://localhost:8080/接着关掉Apache和tomcat然后打开C:\j2ee\Apache\conf\httpd.conf去掉如下图红线框中的#符号在文件最后添加文件名为host,host里面新建一个test.jsp接着,在浏览器中输入http://localhost:8080/host/test.jsp得到如下页面在浏览器中输入http://localhost/host/test.jsp同样得到如下页面到此,Apache和tomecat整合成功!2.Tomcat+ActiveMQ实现消息服务在jsm-test项目中需要在tomcat的lib中导入一共导入6个包:commons-logging-1.1.jaractivemq-core-5.5.0.jaractivemq-web-5.11.1.jargeronimo-j2ee-management_1.1_spec-1.0.jargeronimo-jms_1.1_spec-1.1.1.jargeronimo-jta_1.0.1B_spec-1.0.1.jar修改文件:Tomcat conf下的context.xml<!-- The contents of this file will be loaded for each web application --><Context><!-- Default set of monitored resources --><WatchedResource>WEB-INF/web.xml</WatchedResource><!-- Uncomment this to disable session persistence across Tomcat restarts --> <!--<Manager pathname="" />--><!-- Uncomment this to enable Comet connection tacking (provides events on session expiration as well as webapp lifecycle) --><!--<Valve className="etConnectionManagerValve" />--><Resourcename="jms/FailoverConnectionFactory"auth="Container"type="org.apache.activemq.ActiveMQConnectionFactory"description="JMS Connection Factory"factory="org.apache.activemq.jndi.JNDIReferenceFactory"brokerURL="failover:(tcp://localhost:61616)?initialReconnectDelay=100&maxReconnectAtte mpts=5"brokerName="localhost"useEmbeddedBroker="false"/><Resourcename="jms/NormalConnectionFactory"auth="Container"type="org.apache.activemq.ActiveMQConnectionFactory"description="JMS Connection Factory"factory="org.apache.activemq.jndi.JNDIReferenceFactory"brokerURL="tcp://localhost:61616"brokerName="localhost"useEmbeddedBroker="false"/><Resource name="jms/topic/MyTopic"auth="Container"type="mand.ActiveMQTopic"factory="org.apache.activemq.jndi.JNDIReferenceFactory"physicalName="MY.TEST.FOO"/><Resource name="jms/queue/MyQueue"auth="Container"type="mand.ActiveMQQueue"factory="org.apache.activemq.jndi.JNDIReferenceFactory"physicalName="MY.TEST.FOO.QUEUE"/></Context>Activemq conf下的activemq.xml文件<!--Licensed to the Apache Software Foundation (ASF) under one or morecontributor license agreements. See the NOTICE file distributed withthis work for additional information regarding copyright ownership.The ASF licenses this file to You under the Apache License, Version 2.0(the "License"); you may not use this file except in compliance withthe License. You may obtain a copy of the License at/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.--><!-- START SNIPPET: example --><beansxmlns="/schema/beans"xmlns:amq="/schema/core"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.0.xsd/schema/core/schema/core/activemq-core.xsd/camel/schema/spring/camel/schema/spring/camel-spring.xsd"><!-- Allows us to use system properties as variables in this configuration file --><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/><broker xmlns="/schema/core" brokerName="localhost" persistent="true" useShutdownHook="false"><!-- Destination specific policies using destination names or wildcards --><destinationPolicy><policyMap><policyEntries><policyEntry queue=">" memoryLimit="5mb"/><policyEntry topic=">" memoryLimit="5mb"><dispatchPolicy><strictOrderDispatchPolicy/></dispatchPolicy><subscriptionRecoveryPolicy><lastImageSubscriptionRecoveryPolicy/></subscriptionRecoveryPolicy></policyEntry></policyEntries></policyMap></destinationPolicy><!-- Use the following to configure how ActiveMQ is exposed in JMX --><managementContext><managementContext createConnector="false"/></managementContext><!-- The store and forward broker networks ActiveMQ will listen to --><networkConnectors><!-- by default just auto discover the other brokers --><networkConnector name="default-nc" uri="multicast://default"/><!-- Example of a static configuration:<networkConnector name="host1 and host2" uri="static://(tcp://host1:61616,tcp://host2:61616)"/>--></networkConnectors><persistenceAdapter><amqPersistenceAdapter directory="activemq-data" maxFileLength="32mb"/></persistenceAdapter><!-- Use the following if you wish to configure the journal with JDBC --><!--<persistenceAdapter><journaledJDBC dataDirectory="${activemq.base}/data" dataSource="#postgres-ds"/></persistenceAdapter>--><!-- Or if you want to use pure JDBC without a journal --><!--<persistenceAdapter><jdbcPersistenceAdapter dataSource="#postgres-ds"/></persistenceAdapter>--><!-- The maximum about of space the broker will use before slowing down producers --><systemUsage><systemUsage><memoryUsage><memoryUsage limit="20 mb"/></memoryUsage><storeUsage><storeUsage limit="1 gb" name="foo"/></storeUsage><tempUsage><tempUsage limit="100 mb"/></tempUsage></systemUsage></systemUsage><!-- The transport connectors ActiveMQ will listen to --><transportConnectors><transportConnector name="openwire" uri="tcp://localhost:61616" discoveryUri="multicast://default"/><transportConnector name="ssl" uri="ssl://localhost:61617"/><transportConnector name="stomp" uri="stomp://localhost:61613"/><transportConnector name="xmpp" uri="xmpp://localhost:61222"/> </transportConnectors></broker><!--** Lets deploy some Enterprise Integration Patterns inside the ActiveMQ Message Broker ** For more details see**** /enterprise-integration-patterns.html--><camelContext id="camel" xmlns="/camel/schema/spring"><!-- You can use a <package> element for each root package to search for Java routes --><package>org.foo.bar</package><!-- You can use Spring XML syntax to define the routes here using the <route> element --><route><from uri="activemq:example.A"/><to uri="activemq:example.B"/></route></camelContext><!-- Uncomment to create a command agent to respond to message based admin commands on the ActiveMQ.Agent topic --><!--<commandAgent xmlns="/schema/core" brokerUrl="vm://localhost"/>--><!-- An embedded servlet engine for serving up the Admin console --><jetty xmlns="/schemas/jetty/1.0"><connectors><nioConnector port="8161"/></connectors><handlers><webAppContext contextPath="/admin" resourceBase="${activemq.base}/webapps/admin" logUrlOnStart="true"/><webAppContext contextPath="/demo" resourceBase="${activemq.base}/webapps/demo" logUrlOnStart="true"/><webAppContext contextPath="/fileserver" resourceBase="${activemq.base}/webapps/fileserver" logUrlOnStart="true"/></handlers></jetty><!-- This xbean configuration file supports all the standard spring xml configuration options --><!-- Postgres DataSource Sample Setup --><!--<bean id="postgres-ds" class="org.postgresql.ds.PGPoolingDataSource"><property name="serverName" value="localhost"/><property name="databaseName" value="activemq"/><property name="portNumber" value="0"/><property name="user" value="activemq"/><property name="password" value="activemq"/><property name="dataSourceName" value="postgres"/><property name="initialConnections" value="1"/><property name="maxConnections" value="10"/></bean>--><!-- MySql DataSource Sample Setup --><!--<bean id="mysql-ds" class="mons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost/activemq?relaxAutoCommit=true"/> <property name="username" value="activemq"/><property name="password" value="activemq"/><property name="maxActive" value="200"/><property name="poolPreparedStatements" value="true"/></bean>--><!-- Oracle DataSource Sample Setup --><!--<bean id="oracle-ds" class="mons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/><property name="url" value="jdbc:oracle:thin:@localhost:1521:AMQDB"/><property name="username" value="scott"/><property name="password" value="tiger"/><property name="maxActive" value="200"/><property name="poolPreparedStatements" value="true"/></bean>--><!-- Embedded Derby DataSource Sample Setup --><!--<bean id="derby-ds" class="org.apache.derby.jdbc.EmbeddedDataSource"> <property name="databaseName" value="derbydb"/><property name="createDatabase" value="create"/></bean>--></beans><!-- END SNIPPET: example -->Tomcat下webapps\aa项目的web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"><servlet><servlet-name>jms-listener</servlet-name><servlet-class>com.flvcd.servlet.JMSListener</servlet-class><load-on-startup>1</load-on-startup></servlet><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>编译java命令:编译JMSListener.java至classes目录:javac-cp .;C:\j2ee\Tomcat\apache-tomcat-6.0.44\lib\servlet-api.jar;C:\j2ee\Tomcat\apache-t omcat-6.0.44\lib\geronimo-jms_1.1_spec-1.1.1.jar;C:\j2ee\Tomcat\apache-tomcat-6.0. 44\lib\activemq-core-5.5.0.jar -d . JMSListener.java运行Demo:启动ActiveMQ服务器启动Tomcat服务器:JMSListener将自动连接ActiveMQ broker,日志信息: Successfully connected to tcp://localhost:61616注意:JMSListener已经自动连接ActiveMQ broker日志信息:Successfully connected to tcp://localhost:61616访问http://localhost:8080/jms-test/publish.jsp Tomcat服务器日志将提示:接收刷新文章消息,开始刷新文章ID=2046接收刷新论坛帖子消息,开始刷新帖子ID=331访问http://localhost:8161/admin/topics.jsp查看MY.TEST.FOO的消息日志,分别发送和接收2条。
j2ee实验报告
3)registerSuccess.html 文件:显示注册成功信息。 根据以上要求,使用 sql 或 Mysql 或 access 建立数据库,实现相应的功能。
实验题 3 编写四个页面:one.jsp,two.jsp,three.jsp 和 error.jsp,one.jsp,two.jsp,three.jsp 页面都含有一个导
航条,以便用户方便地单击超链接访问这三个页面,要求这三个页面通过使用 include 动作标记动态 加载导航条文件 head.txt。导航条文件 head.txt 的内容如下:
11
实验报告
页面。 (2)show.jsp 的具体要求 该页面调用名字为 car 的 bean,并显示该 bean 的各个属性的值。 (3)Car.java 的具体要求 编写 Car.java 应当有描述汽车牌号、名称和生产日期的属性,并提供相应的 getXxx 和 setXxx 方
法,来获取和修改这些属性的值。Car.java 中 package 语句,起的包名是 tom.bean。将 Car.java 保存 到该包中。 要求:使用 useBean 标记及 setProperty、getProperty 动作标记,使用表单参数的值来设置 bean 的相 应属性的值。
二、实验环境(实验设备)
硬件: 微型计算机 P4
软件: windows XP+NetBean IDE 6.9+JDK 1.6+数据库
三、实验原理及内容
实验题 1 编写一个对 1 到 100 之间的整数求和的 JSP 程序。 要求: (1) 在程序中对语句进行说明。 (2) 说明采用两种注释方式。
j2ee实验二
南京信息工程大学实验(实习)报告实验名称JSP应用实验日期得分指导教师方巍院计算机与软件学院专业计算机科学与技术年级 2012 班次 3 姓名王莹学号 20121308081 一.实验目的:1.通过实例开发,熟练掌握JSP语法及相关标签的应用。
2.熟练掌握用Servlet作为控制器,实现用户请求的处理及页面的跳转。
二.实验内容1.编写一个Servlet应用,实现HelloWorld;2.实例说明request,session以及application对象之间的区别;3.上传文件;4.完成留言板的实现。
三.实验步骤一、实验步骤1、Servlet开发。
编辑HelloWorld类的代码如下:import java.io.IOException;import java.io.PrintWriter;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class HelloWorld implements Servlet {public void destroy() {}public ServletConfig getServletConfig() {return null;}public String getServletInfo() {return null;}public void init(ServletConfig arg0) throws ServletException {}public void service(ServletRequest req, ServletResponse res)throws ServletException, IOException {PrintWriter pw = res.getWriter();pw.println("HelloWorld!");}}修改web.xml中的部分代码,添加代码如下:<servlet><servlet-name>HelloWorld</servlet-name><servlet-class>HelloWorld</servlet-class></servlet><servlet-mapping><servlet-name>HelloWorld</servlet-name><url-pattern>/helloWorld</url-pattern></servlet-mapping>实验运行截图如下:2、实现文件的上传下载。
J2EE_实验报告7_Spring的IOC
J2EE实验报告实验内容1功能描述1.1、掌握Spring框架的建立步骤;1.2、掌握Spring的Ioc注入方式:传值注入和构造注入;1.3、掌握Spring的静态工厂注入方式;1.4、掌握Spring的实例工厂注入方式。
2实验步骤2.1 搭建Spring 框架(0) 新建web project项目,项目名称自定义(我取名为EX_Ioc);(1) 将spring需要的jar包拷贝到______下;(2)在src下新建applicationContext.xml文件<?xml version="1.0"encoding="UTF-8"?><beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/bean s/schema/beans/spring-beans-3.0.xsd/schema/aop/schema/aop/spring-aop-3.0.xs d"></beans>2.2 注入普通类及属性(1)在src下新增包.xmut.first,在该包下新建类Person.java:Person.javapackage .xmut.first;public class Person {private String name;public void sayHello(){System.out.println("hello, i am " + name);}//省略get set 方法}(2)在applicationContext.xml文件中添加配置<!-- frist 配置简单类及属性 --><bean id="person"class="____"><property name="____"value="xmut"></property> </bean>(3)编写测试代码在src下新增包.xmut.test,在该包下新建类MyTest.java:package .xmut.test;import org.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationCon text;import .xmut.HelloSpring.app.frist.Person;public class MyTest{public static void main(String[] args) {ApplicationContext apc = new ______("______.xml");Person person = (______) apc.getBean("______");person.sayHello();}}(4)运行测试代码,查看结果。
j2ee实习报告.doc
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框架有了很深的了解,虽然过程中出现的一些问题,但是在老师和同学的细心指导下,最终玩成了这个项目,这对于即将要制作毕业作品的我来说无疑是最大的帮助。
J2EE上机实验报告
实验体会.................................................................................... 13
1、实验内容......................................................................................... 3
2、关键代码......................................................................................... 3
2、关键代码......................................................................................... 9
testJDBC/connectDB.java....................................................................................................9 testJDBC/database.jsp...................................................................................................... 11
实验报告正文
J2EE 上机实验报告
实验二、一个简单基于 servlet 的 web 应用程序
J2EE平台技术实验二
《J2EE平台技术》实验二——JavaBean的使用1.创建一个Web Project工程并新建一个注册的jsp页面,如图一所示:
图一
2.创建一个JavaBean,并定义姓名、性别、年龄、电邮和身份证属性。
3.在JavaBean中写一个验证方法验证姓名、性别、年龄、电邮和身份证。
要求:姓名和性别均不为空。
性别只能是男或女,年龄范围0~150,电邮必须包含@和.,身份证18位数字。
4.当用户输入的信息不完整,按注册按钮后,转到重新注册页面,并给出相应的提示,如图二:
图二
5.如果用户输入性别和电邮时没有输入正确,则转到重新输入的页面,并显示如图三:
图三
6.如果所有信息输入均正确则转到成功页面,并显示如图四:
图四。
J2EE试验一
实验一J2EE开发环境配置与Servlet程序测试计算机与软件学院软件工程专业2012级软件工程2班20121344081 夏丽丽1、实验目的1)掌握J2EE开发运行环境的安装、配置。
2)熟悉MyEclipse集成开发工具的使用。
3)掌握Servlet工作原理和流程4)掌握Servlet程序的编写与实践2、实验内容1)安装MyEclispe,并配置J2EE开发环境。
2)采用MyEclipse工具编写Servlet程序, 具体需求如下:创建input输入网页,网页中包含一个输入框;当客户输入内容后,提交到一个Servlet类,而这个Servlet类取出客户输入的信息,并在一个HTML页面上显示该内容,比如输入“小王,欢迎您!”,并能打印在另一网页上。
3、实验步骤①按照说明文件安装MyEcplise并配置Tomcat开发环境②采用MyEcplise编写Servlet程序input.html文件的编写<form action="inputServlet" method="post">请输入你想显示的内容:<input type="text" name="input"/><br><input type="submit" value="提交"/><input type="reset" value="重置"/>InputServlet类的编写public class InputServlet extends HttpServlet{protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {// 响应内容转换为中文编码res.setCharacterEncoding("gb2312");// 请求转换为中文编码req.setCharacterEncoding("gb2312");// 取出表单提交的内容String input=req.getParameter("input");// 得到PrintWriter对象PrintWriter pw=res.getWriter();pw.println("<html><head><title>");pw.println("显示输入内容");pw.println("</title><body>");pw.println(input);pw.println("</body></html>");}protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {// 如果是Post请求,调用doGet()方法,这样做无论是Get还是Post请求都可以处理doGet(req, res);}}在web.xml中配置servlet类<servlet><!-- 为servlet取名,任意的 --><servlet-name>inputServlet</servlet-name><!-- servlet的包名+类名 --><servlet-class>aa.InputServlet</servlet-class></servlet><servlet-mapping><!-- 上面为servlet起的名字 --><servlet-name>inputServlet</servlet-name><!-- 访问URL,注意前面加"/" --><url-pattern>/inputServlet</url-pattern></servlet-mapping>运行结果截图4、实验小结对java语言开发网页有了一个基本的认识,初步了解了servlet的实现方式。
J2EE实验报告_4
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 实验报告
j2ee 实验报告J2EE实验报告引言:J2EE(Java 2 Enterprise Edition)是一种用于开发企业级应用程序的Java平台。
它提供了一套完整的技术规范和工具,使开发人员能够构建可靠、可扩展和安全的企业应用。
本文将探讨J2EE的基本概念、架构和实验结果,以及对J2EE在企业级应用开发中的应用前景进行分析。
一、J2EE的基本概念J2EE是Java平台的一部分,旨在简化和加速企业级应用程序的开发过程。
它采用了分层架构,将应用程序的不同功能分割成不同的组件,以实现更好的可维护性和重用性。
J2EE的基本概念包括以下几个方面:1.1 分层架构J2EE采用了分层架构,将应用程序划分为客户端、Web层、业务逻辑层和数据访问层等不同的组件。
这种架构使得应用程序的不同部分能够独立开发和部署,提高了开发效率和可维护性。
1.2 组件模型J2EE采用了组件模型,将应用程序的不同功能封装成不同的组件,如Servlet、JSP、EJB等。
这些组件可以独立开发、测试和部署,提高了代码的重用性和可扩展性。
1.3 事务管理J2EE提供了强大的事务管理机制,确保在并发访问和故障恢复等情况下数据的一致性和完整性。
开发人员可以通过使用JTA(Java Transaction API)和JTS(Java Transaction Service)等技术来管理事务。
二、J2EE的架构J2EE的架构包括客户端、Web层、业务逻辑层和数据访问层等不同的组件。
每个组件都有特定的功能和职责。
下面将对这些组件进行详细介绍。
2.1 客户端客户端是用户与应用程序交互的界面,可以是桌面应用程序、移动应用程序或Web浏览器。
客户端通过HTTP协议或其他协议与Web层进行通信,向用户展示数据和接收用户的输入。
2.2 Web层Web层是应用程序的前端,负责接收用户的请求并将其转发给业务逻辑层进行处理。
Web层通常由Servlet和JSP组成,Servlet用于处理请求和生成响应,JSP用于生成动态内容。
朱泓锦20136239《J2EE程序设计》实验1
天津理工大学实验报告学院(系)名称:计算机与通信工程学院登录页面05.php的代码如下:<?php session_start() ; //初始化sessionif (isset ($_SESSION['user'])){header ("Location:index.php") ; //重新定向到其他页面exit ; } ?><script language="javascript">function checklogin (){if ((ername.value!="") && (login.password.value!=""))return true //判断用户名和密码不为空,返回TRUEelse{ alert ("用户名或密码不能为空!") } }</script><style type="text/css">.style1 { font-size: 13px; font-family: "黑体"; font-weight: normal; color: #0099FF; }</style><div align="center"><table width="260" border="1" bgcolor="#D8EFFA"><form name="login" method="post" action="06.php" onSubmit="return checklogin()"><tr align="center"><td height="30" colspan="2"><span class="style1">管理系统登录</span></td></tr><tr><td width="90" align="center" class="style1">管理员: </td><td width="170" height="20" align="left" valign="middle"><input name="username" type="text" id="username" size="20"></td></tr><tr><td align="center" class="style1">密码: </td><td height="20" align="left" valign="middle"><input name="password" type="password" id="password" size="20"></td></tr><tr><td align="center" class="style1">  ; </td><td height="20" align="center"><input type="submit" name="Submit" value="登录"></td></tr></form></table>二.该程序是一个管理员登录界面,首先初始化session,然后通过检测session变量是否已经注册来检测用户是否已经登录过,如果登录过,则无需再次登录,直接定向到其他页面。
J2EE架构与应用开发实验1
浙江大学城市学院实验报告课程名称J2EE架构与应用开发实验项目名称实验一J2EE应用开发环境搭建和熟悉学生姓名吴奇专业班级信管1204 学号31201403实验成绩指导老师(签名)日期一. 实验目的和要求1. 上网搜索整理J2EE/Java EE的发展历程和主要技术;2. 初步熟悉J2EE应用开发环境:Eclipse、JBoss的使用;3. 利用J2EE工具部署运行第一个实例:HelloWorld。
二. 实验内容、原理及实验结果与分析1. 上网搜索整理J2EE/Java EE的发展历程和主要技术【实验结果与分析】发展历程:在旧金山举行的2011年JavaOne大会上,甲骨文公司展示了其推动Java 平台企业版(Java EE)发展的最新成果。
Java EE 继续大受欢迎,并有越来越多的开发人员采用,包括Oracle GlassFish Server 在内的Java EE组件获得了4000万次下载。
自2009年12月推出以来,6个主要IT厂商已经推出了经过认证、开源和商业实施的Java EE 6,使其成为迄今为止最迅速获得采用的平台产品。
作为下一代Java EE, Java EE 7进展顺利,其中,有超过20个的不同参与企业和数百名工程师通过Java 社区(JCP)对10个活跃的Java规范要求(JSRs)进行了开发处理。
Java EE 7 JSRs 包括:Java EE 7 平台, Java Persistence API 2.1, JAX-RS 2.0: 用于RESTful网络服务的Java API, Servlet 3.1, 表达语言3.0, Java 信息服务2.0, JavaServer Faces 2.2, Enterprise JavaBeans 3.2, 面向Java EE 1.1的Contexts and Dependency Injection , Bean Validation 1.1.等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告本实验类别J2EE应用实践教程学院信息学院专业计算机科学与技术班级081姓名、学号高树锋、508152026指导教师卢小林实验日期自2010年11 月 1 日至2010 年12月23日止目录1. 摘要 (1)2. 实验内容 (1)1.1. 目标 (1)1.2. 需求分析 (1)1.3. 采用技术 (1)1.4. 模块设计 (1)1.5. 编码实现 (2)3. 实验完成情况 (9)4. 实验总结 (10)开发Struts 2、Spring集成程序1. 摘要在此,将三个框架Struts,Hibernate和Spring做一个集成,开发一个简单项目。
在这个项目中,用户在登录页面输入登录名和密码,则跳转到另外一个欢迎页面,反之,将进入失败页面。
2. 实验内容1.1. 目标用户在登录页面输入登录名和密码,则跳转到另外一个欢迎页面,反之,将进入失败页面。
1.2. 需求分析登录界面几乎是所有网站都会用到的功能,因此登陆界面制作的技术是需要不断的学习,不断的提高的。
登录需要往数据库中查询,因此数据库的应用不可忽视。
1.3. 采用技术j2ee,struts2,hibernate,spring.1.4. 模块设计1.完成ssh91)创建数据库2)创建Web Project,名为ssh93)添加Struts 2框架4)创建login.jsp5)创建LoginAction.java6)创建login_success.jsp7)创建login_error.jsp8)部署,测试struts22.集成Spring9)添加Spring框架10)添加Struts spring支持包spring-struts-plugin-2.0.11.jar11)修改web.xml内容112)创建struts.properties13)修改struts.xml14)修改applicationContext.xml15)部署测试3.加载Hibernate框架16)添加Spring框架17)修改LoginAction.java18)修改applicationContext.xml19)部署测试1.5. 编码实现数据库内容如下:建表语句:CREATE TABLE user(id int(10) not null auto_increment,username varchar(10) not null,password varchar(10) not null,primary key (id))ENGINE=InnoDB DEFAULT CHARSET=GBK; 其中已有数据:LoginAction.java代码如下:package org;import java.util.List;import org.hibernate.SessionFactory;import org.hibernate.Query;import org.hibernate.classic.Session;import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ private String username;private String password;private SessionFactory sessionFactory;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 SessionFactory getSessionFactory(){return sessionFactory;}public void setSessionFactory(SessionFactory sessionFactory){this.sessionFactory=sessionFactory;}public String execute() throws Exception{Session session=sessionFactory.openSession();String hql="from User u where ername=? and u.password=?";Query query=session.createQuery(hql);query.setParameter(0,username);query.setParameter(1,password);List user=query.list();session.close();if(user.size()>0){return SUCCESS;}else{return ERROR;}}}User.hbm.xml代码如下:<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "/hibernate-mapping-3.0.dtd"><!--Mapping file autogenerated by MyEclipse Persistence Tools--><hibernate-mapping><class name="er" table="user" catalog="test"><id name="id" type="ng.Integer"><column name="id" /><generator class="native" /></id><property name="username" type="ng.String"><column name="username" length="10" not-null="true" /></property><property name="password" type="ng.String"><column name="password" length="10" not-null="true" /></property></class></hibernate-mapping>User.hbm.xml代码如下:package org;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.cfg.Configuration;public class HibernateSessionFactory {private static String CONFIG_FILE_LOCA TION = "/hibernate.cfg.xml";private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();private static Configuration configuration = new Configuration();private static org.hibernate.SessionFactory sessionFactory;private static String configFile = CONFIG_FILE_LOCATION;static {try {configuration.configure(configFile);sessionFactory = configuration.buildSessionFactory();} catch (Exception e) {System.err.println("%%%% Error Creating SessionFactory %%%%");e.printStackTrace();}}private HibernateSessionFactory() {}public static Session getSession() throws HibernateException {Session session = (Session) threadLocal.get();if (session == null || !session.isOpen()) {if (sessionFactory == null) {rebuildSessionFactory();}session = (sessionFactory != null) ? sessionFactory.openSession(): null;threadLocal.set(session);}return session;}public static void rebuildSessionFactory() {try {configuration.configure(configFile);sessionFactory = configuration.buildSessionFactory();} catch (Exception e) {System.err.println("%%%% Error Creating SessionFactory %%%%");e.printStackTrace();}}public static void closeSession() throws HibernateException {Session session = (Session) threadLocal.get();threadLocal.set(null);if (session != null) {session.close();}}public static org.hibernate.SessionFactory getSessionFactory() {return sessionFactory;}public static void setConfigFile(String configFile) {HibernateSessionFactory.configFile = configFile;sessionFactory = null;}public static Configuration getConfiguration() {return configuration;}}LoginAction.java代码如下:package org;public class User implements java.io.Serializable { private Integer id;private String username;private String password;public User() {}public User(String username, String password) {ername = username;this.password = password;}public Integer getId() {return this.id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return ername;}public void setUsername(String username) {ername = username;}public String getPassword() {return this.password;}public void setPassword(String password) {this.password = password;}}配置struts.xml文件,代码如下:<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><include file="struts-default.xml"/><package name="default" extends="struts-default"><action name="login" class="org.LoginAction"><result name="error">/login_error.jsp</result><result name="success">/login_success.jsp</result></action></package></struts>创建login.jsp,代码如下:<%@ page contentType="text/html;charset=gb2312" %><%@ taglib prefix="s" uri="/struts-tags" %><html><head><title>登录页面</title></head><body><form action="login.action" method="post">用户登录<br>用户名:<input type="text" name="username"/><br>密码:<input type="password" name="password"/><br><input type="submit" value="登录"/><br></form></body></html>创建login_success.jsp,代码如下:<%@ page contentType="text/html;charset=gb2312" %><%@ taglib prefix="s" uri="/struts-tags" %><html><body><h2>您好!用户<s:property value="username"/>欢迎您登录成功</h2> </body></html>创建login_error.jsp,代码如下:<%@ page contentType="text/html;charset=gb2312" %><%@ taglib prefix="s" uri="/struts-tags" %><html><body><h2>登录失败</h2></body></html>修改web.xml内容,使得程序增加对Spring的支持<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping><listener><listener-class>org.springframework.web.context.ContextLoaderListener </listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/classes/applicationContext.xml</param-value></context-param><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>使得struts 2的类(struts.properties)的生成交给Spring完成。