JavaEE应用开发基础实验.doc_第1页
JavaEE应用开发基础实验.doc_第2页
JavaEE应用开发基础实验.doc_第3页
JavaEE应用开发基础实验.doc_第4页
JavaEE应用开发基础实验.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java EE 应用开发基础实验要求:用JSP、Servlet和JavaBean开发一个简单的留言系统。相关界面:登录:登陆成功:留言:留言成功:返回主界面:实验步骤:1、需求分析既然是留言系统,肯定要有用户登录,所以需要一个用户表(userTable)。字段包括:id、username和password。其中id设为自动增长的int型,并设为主键。username和password都设为varchar型。登录成功后要有个主界面,显示别人和自己的留言信息,那就应该有个留言表(lyTable)。字段包括:id、userId、date、title、content。其中id设为自动增长的int型,并设为主键。userId是user表中的id,表明该条留言是该用户留的。2、建立数据库与表(该步骤省略)建立数据库,命名为“JSP”,这里我们用的是MySQL。然后在该数据库中建立上面提到的两个表:userTable表、lyTable表。3、新建项目打开MyEclipse,新建项目,命名为“JSPExample”。4、建立表对应的标准JavaBeanLyTable表对应的JavaBean。package model;import java.sql.Date;public class LyTable private int id;private int userId;private Date date;private String title;private String content;public int getId() return id;public void setId(int id) this.id = id;public int getUserId() return userId;public void setUserId(int userId) this.userId = userId;public Date getDate() return date;public void setDate(Date date) this.date = date;public String getTitle() return title;public void setTitle(String title) this.title = title;public String getContent() return content;public void setContent(String content) this.content = content;User表对应的标准JavaBean。package model;public class User private int id;private String username;private String password;public int getId() return id;public void setId(int id) this.id = id;public String getUsername() return username;public void setUsername(String username) this.username = username;public String getPassword() return password;public void setPassword(String password) this.password = password;5、创建登录页面首先还是先创建登录界面login.jsp。 简易留言板 用户登录登录名:密码:如果没注册点击这里注册! 6、建立DB类在src文件夹下建立包,命名为“db”,在db包中建立DB类。package db;import java.sql.*;import java.util.ArrayList;import java.util.Date;import model.LyTable;import model.User;public class DB Connection ct;PreparedStatement pstmt;/ 在构造函数中建立与数据库的连接,这样在建立DB对象时就连接了数据库public DB()try /*Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);ct=DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;databaseName=javaee,sa,123456);*/Class.forName(org.gjt.mm.mysql.Driver);ct=DriverManager.getConnection(jdbc:mysql:/9:3306/javaee?autoReconnect=true&useUnicode=true&characterEncoding=gbk,liukun,liukun); catch (Exception e) e.printStackTrace();/ 根据username和password查询用户,查到就返回该对象,没有就返回nullpublic User checkUser(String username,String password)trypstmt=ct.prepareStatement(select * from userTable where username=? and password=?);pstmt.setString(1, username);pstmt.setString(2, password);ResultSet rs=pstmt.executeQuery();User user=new User();while(rs.next()user.setId(rs.getInt(1);user.setUsername(rs.getString(2);user.setPassword(rs.getString(3);return user;return null;catch(Exception e)e.printStackTrace();return null;/ 根据userId得到用户姓名public String getUserName(int userId)trypstmt=ct.prepareStatement(select * from userTable where id=?);pstmt.setInt(1, userId);ResultSet rs=pstmt.executeQuery();while(rs.next()return rs.getString(username);return null;catch(Exception e)e.printStackTrace();return null;/ 查询留言信息,返回一个ArrayListpublic ArrayList findLyInfo()tryArrayList al=new ArrayList();pstmt=ct.prepareStatement(select * from lyTable);ResultSet rs=pstmt.executeQuery();while(rs.next()LyTable ly=new LyTable();ly.setId(rs.getInt(1);ly.setUserId(rs.getInt(2);ly.setDate(rs.getDate(3);ly.setTitle(rs.getString(4);ly.setContent(rs.getString(5);al.add(ly);return al;catch(Exception e)e.printStackTrace();return null;/增加留言public boolean addInfo(LyTable ly)try pstmt=ct.prepareStatement(insert into lyTable(userid,data,title,content) values(?,?,?,?);pstmt.setInt(1, ly.getUserId();pstmt.setDate(2, ly.getDate();pstmt.setString(3, ly.getTitle();pstmt.setString(4, ly.getContent();pstmt.executeUpdate();return true; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return false;/增加用户public boolean insertUser(String username,String pwd)try pstmt=ct.prepareStatement(insert into userTable(username,password) values(?,?);pstmt.setString(1, username);pstmt.setString(2, pwd);pstmt.executeUpdate();return true; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return false;7、建立MainServlet类当输入登录名和密码后,单击【登录】按钮,提交给了一个Servlet页面,且其URL 为“mainServlet”。在src文件夹下建立包,命名为“servlet”,表示该包下存放的都是Servelt类,如果文件多,可方便我们查询。在servlet包下建立一个Servlet类,命名为“MainServlet”。package servlet;import java.io.IOException;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import model.User;import db.DB;public class MainServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException / 设置请求编码request.setCharacterEncoding(gb2312);/ 设置响应编码response.setContentType(gb2312);/ 获得JSP页面填入的用户名的值String username=request.getParameter(username);/ 获得JSP页面填入的密码的值String pwd=request.getParameter(pwd);/ 建立DB类对象,使用其中的方法来完成判断DB db=new DB();/ 获得session对象,用来保存信息,HttpSession session=request.getSession();/ 先获得user对象,如果是第一次访问该Servlet,用户对象肯定为空,但如果是第/ 二次甚至是第三次,就不应该在判断该用户的信息。User user=(User) session.getAttribute(user);/ 这里就是判断 ,如果用户是第一次进入,调用DB类里面的方法判断if(user=null) user=db.checkUser(username, pwd);/ 把user对象存在session中session.setAttribute(user, user);if(user!=null)/ 如果根据查询用户不为空的话,表示用户名和密码正确,应该去下一界面。/ 这里是去主界面,主界面中包含了所有留言信息,所以要从留言表中查出来。ArrayList al=db.findLyInfo();/ 包查询的信息保存在session中session.setAttribute(al, al);/ 然后跳转到我们要去的主界面response.sendRedirect(main.jsp);else/ 如果用户名和密码错误的话回到登录界面response.sendRedirect(login.jsp);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doGet(request,response);8、建立main.jspMainServlet中验证成功后会去main.jsp页面,而且在main.jsp页面中会显示所有留言信息。 留言板信息 所有留言信息 留言人姓名留言时间留言标题留言内容 9、建立AddServlet类package servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.Date;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import model.*;import db.DB;public class AddServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException / 设置请求编码request.setCharacterEncoding(gb2312);/ 设置响应编码response.setContentType(gb2312);/ 获取title内容String title=request.getParameter(title);/ 获取content内容String content=request.getParameter(content);/ 从session中取出当前用户对象User user=(User) request.getSession().getAttribute(user);/ 建立留言表对应JavaBean对象,把数据封装进去LyTable ly=new LyTable();ly.setUserId(user.getId();/ 参数为获取的当前时间ly.setDate(new Date(System.currentTimeMillis();ly.setTitle(title);ly.setContent(content);/ 调DB类中的方法判断是否插入成功if(new DB().addInfo(ly)response.sendRedirect(success.jsp);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doGet(request,response);10、创建成功页面 成功界面 留言成功,点击这里返回主界面。 11、配置web.xml在讲Servlet时我们说过,有一个Servlet,就要有其配置文件与其对应,而这里有两个Servlet,所以在web.xml中就应该为它们配置。mainServlet servlet.MainServlet addServlet servlet.AddServlet mainServlet /mainServlet addServlet /addServlet registerServlet servlet.RegisterServlet registerServlet /registerServlet12、创建注册页面注册页面register.jsp。 简易留言板 用户注册登录名:密码: 13、创建RegisterServlet类package servlet;import java.io.IOException;import java.io.PrintWriter;import db.DB;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class RegisterServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding(gb2312);request.setCharacterEncoding(gb2312);String username=request.getParameter(username);String pwd=request.getParameter(pwd);if(new DB().insertUser(username, pwd)response.sendRedirect(login.jsp);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doGet(request,response);14、部署运行实验扩展:1、 实现分页。把数据库连接中的代码单独写一个javabean。袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论