实验报告课程名称基于Struts2的留言板程序实验名称JSP编程实验类型设计型实验地点计算机楼304机房实验日期2011年5月10日9~12节指导教师李文超专业计算机科学与技术班级0802学号0811010209姓名李鑫成绩辽宁石油化工大学计算机与通信工程学院一.实验目的:1.掌握Struts2配置2.掌握Struts2标签库的使用;3.掌握Action编写二.实验内容:编写一个小型留言板程序1.实现留言功能;2.查看用户留言;3.利用Struts2验证框架为注册和登录页面增加验证功能。完成JSP页面及相应的JAVA代码。数据库结构(仅供参考):(id,message,author,postTime)三.实验环境:JDK1.6/Tomcat6.0.29/myeclipse6.5/MySQL5.5四.报告要求1.给出数据库表结构2.给出JSP页面和JAVA主要代码3.实验结果(页面抓图)4.实验总结五、实验方案:1.建立用户数据库,和一个user表内容包括(username,password)插入一个用户建立留言版的信息表:createtablemessage(idvarchar(30),messagevarchar(200),authorvarchar(50),posttimetimestamp(6))2.连接数据库3.布置JSP界面4.针对每一个功能点,编写一个action类。编写相关的结果页面。针对action返回的结果代码,编写相应的结果页面。5.利用Struts2验证框架为注册和登录页面增加验证功能。6.进行测试,调试程序六、实验代码:packagelogin.sql;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;publicclassBaseDao{publicfinalstaticStringDRIVER=oracle.jdbc.driver.OracleDriver;publicfinalstaticStringURL=jdbc:oracle:thin:@127.0.0.1:1521:myoracle;publicfinalstaticStringDBNAME=scott;publicfinalstaticStringDBPASS=123456;publicstaticConnectiongetConnect()throwsClassNotFoundException,SQLException{Class.forName(DRIVER);returnDriverManager.getConnection(URL,DBNAME,DBPASS);}publicstaticvoidcloseAll(Connectionconn,PreparedStatementpstmt,ResultSetrs){if(rs!=null){try{rs.close();}catch(SQLExceptione){e.printStackTrace();}}if(pstmt!=null){try{pstmt.close();}catch(SQLExceptione){e.printStackTrace();}}if(conn!=null){try{conn.close();}catch(SQLExceptione){e.printStackTrace();}}}publicstaticintexecuteSQL(StringpreparedSql,String[]param){Connectionconn=null;PreparedStatementpstmt=null;intnum=0;try{conn=getConnect();pstmt=conn.prepareStatement(preparedSql);if(param!=null){for(inti=0;iparam.length;i++){pstmt.setString(i+1,param[i]);}}num=pstmt.executeUpdate();}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}finally{closeAll(conn,pstmt,null);}returnnum;}}packagelogin.bean;publicclassUser{privateStringuserName;privateStringpassword;publicStringgetUserName(){returnuserName;}publicvoidsetUserName(StringuserName){this.userName=userName;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}}packagelogin.action;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.util.Map;importlogin.bean.User;importlogin.sql.*;importorg.apache.struts2.interceptor.RequestAware;importorg.apache.struts2.interceptor.SessionAware;importcom.opensymphony.xwork2.ActionSupport;publicclassLoginActionextendsActionSupportimplementsSessionAware,RequestAware{privateUseruser;privateintid;//method2privateMapsession;privateMaprequest;privateConnectioncon;privatePreparedStatementpstmt;privateResultSetrs;publicMapgetRequest(){returnrequest;}publicvoidsetRequest(Maprequest){this.request=request;}publicMapgetSession(){returnsession;}publicvoidsetSession(Mapsession){this.session=session;}publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicUsergetUser(){returnuser;}publicvoidsetUser(Useruser){this.user=user;}publicStringexecute()throwsException{if(null==user)returnINPUT;Stringsql=selectcount(*)fromuserswhereuserName=?andpassword=?;pstmt=BaseDao.getConnect().prepareStatement(sql);pstmt.setString(1,user.getUserName());pstmt.setString(2,user.getPassword());rs=pstmt.executeQuery();if(rs.next()){session.put(user,user);returnSUCCESS;}elsereturnINPUT;}}JSP代码:%@pagelanguage=javaimport=java.util.*pageEncoding=UTF-8%%@taglibprefix=suri=/struts-tags%!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//ENhtmlheadtitleLogin/titlemetahttp-equiv=pragmacontent=no-cachemetahttp-equiv=cache-controlcontent=no-cachemetahttp-equiv=expirescontent=0metahttp-equiv=keywordscontent=keyword1,keyword2,keyword3metahttp-equiv=descriptioncontent=Thisismypage!--linkrel=stylesheettype=text/csshref=styles.css--/headbodyformname=loginFormaction=login.action?id=123method=postdivalign=centerbr用户名:inputtype=textname=user.userNamebr/divdivalign=centerbr密码:inputtype=passwordname=user.passwordbrinputtype=submitvalue=登录/div/form/body/html%@pagelanguage=javaimport=java.util.*pageEncoding=UTF-8%%@taglibprefix=suri=/struts-tags%!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//ENhtmlheadtitleindex/titlemetahttp-equiv=pragmacontent=no-cachemetahttp-equiv=cache-controlcontent=no-cachemetahttp-equiv=expirescontent=0metahttp-equiv=keywordscontent=keyword1,keyword2,keyword3metahttp-equiv=descriptioncontent=Thisismypage!--linkrel=stylesheettype=text/csshref=styles.css--/headbodyWelcometojsp.brbr用户名:s:propertyvalue=user.userName/br/密码:s:propertyvalue=user.password//body/html七.实验结果:注册验证:八.实验总结本次是实验主要在java中使用jsp编程来制作一个简单的登录界面,利用jsp来实现动态网站的制作。掌握Struts2配置,掌握Struts2标签库的使用;掌握Action编写。并对登录进行验证。通过这次练习基本掌握了jsp中struct2的一些用法,但由于时间有限不能够了解的更多,只是初步的接触一下,但本次的实验目的还是基本达到了。