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

下载本文档

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

文档简介

1、. . . . Java EE 应用开发基础实验要求:用JSP、Servlet和JavaBean开发一个简单的留言系统。相关界面:登录:登陆成功:留言:留言成功:返回主界面:实验步骤:1、需求分析既然是留言系统,肯定要有用户登录,所以需要一个用户表(userTable)。字段包括:id、username和password。其中id设为自动增长的int型,并设为主键。username和password都设为varchar型。登录成功后要有个主界面,显示别人和自己的留言信息,那就应该有个留言表(lyTable)。字段包括:id、userId、date、title、content。其中id设为自动增

2、长的int型,并设为主键。userId是user表中的id,表明该条留言是该用户留的。2、建立数据库与表(该步骤省略)建立数据库,命名为“JSP”,这里我们用的是MySQL。然后在该数据库中建立上面提到的两个表:userTable表、lyTable表。3、新建项目打开MyEclipse,新建项目,命名为“JSPExample”。4、建立表对应的标准JavaBeanLyTable表对应的JavaBean。package model;import java.sql.Date;publicclass LyTable privateintid;privateintuserId;private Date

3、 date;private String title;private String content;publicint getId() returnid;publicvoid setId(int id) this.id = id;publicintgetUserId() returnuserId;publicvoid setUserId(int userId) this.userId = userId;public Date getDate() returndate;publicvoid setDate(Date date) this.date = date;public String get

4、Title() returntitle;publicvoid setTitle(String title) this.title = title;public String getContent() returncontent;publicvoid setContent(String content) this.content = content;User表对应的标准JavaBean。package model;publicclass User privateintid;private String username;private String password;publicint getI

5、d() returnid;publicvoid setId(int id) this.id = id;public String getUsername() returnusername;publicvoid setUsername(String username) this.username = username;public String getPassword() returnpassword;publicvoid setPassword(String password) this.password = password;5、创建登录页面首先还是先创建登录界面login.jsp。<

6、% page language="java" pageEncoding="gb2312"%><html><head><title>简易留言板</title></head><body bgcolor="#E3E3E3"><form action="mainServlet" method="post"><table><caption>用户登录</caption><tr&

7、gt;<td>登录名:</td><td><input type="text" name="username" size=”20”/></td></tr><tr><td>密码:</td><td><input type="password" name="pwd" size=”21”/></td></tr></table><input type=&q

8、uot;submit" value="登录"/><input type="reset" value="重置"/></form>如果没注册点击<a href="register.jsp">这里</a>注册!</body></html>6、建立DB类在src文件夹下建立包,命名为“db”,在db包中建立DB类。package db;import java.sql.*;import java.util.ArrayList;import

9、 java.util.Date;import model.LyTable;import model.User;publicclass DB Connection ct;PreparedStatement pstmt;/ 在构造函数中建立与数据库的连接,这样在建立DB对象时就连接了数据库public DB()try /*Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");ct=DriverManager.getConnection("jdbc:sqlserver:/localhost:1433;dat

10、abaseName=javaee","sa","123456");*/Class.forName("org.gjt.mm.mysql.Driver");ct=DriverManager.getConnection("jdbc:mysql:/202.194.68.69:3306/javaee?autoReconnect=true&useUnicode=true&characterEncoding=gbk","liukun","liukun"); cat

11、ch (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

12、 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;returnnull;catch(Exception e)e.printStackTrace();returnnull;/ 根据userId得到用户public String getUserName(int userId)trypstmt=ct.prepareStateme

13、nt("select * from userTable where id=?");pstmt.setInt(1, userId);ResultSet rs=pstmt.executeQuery();while(rs.next()return rs.getString("username");returnnull;catch(Exception e)e.printStackTrace();returnnull;/ 查询留言信息,返回一个ArrayListpublic ArrayList findLyInfo()tryArrayList al=new Arr

14、ayList();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;catc

15、h(Exception e)e.printStackTrace();returnnull;/增加留言publicboolean 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

16、, ly.getContent();pstmt.executeUpdate();returntrue; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();returnfalse;/增加用户publicboolean insertUser(String username,String pwd)try pstmt=ct.prepareStatement("insert into userTable(username,password) values(?,?)");pstmt.s

17、etString(1, username);pstmt.setString(2, pwd);pstmt.executeUpdate();returntrue; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();returnfalse;7、建立MainServlet类当输入登录名和密码后,单击登录按钮,提交给了一个Servlet页面,且其URL 为“mainServlet”。在src文件夹下建立包,命名为“servlet”,表示该包下存放的都是Servelt类,如果文件多,可方便我们查询。在se

18、rvlet包下建立一个Servlet类,命名为“MainServlet”。package servlet;import java.io.IOException;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet. . Servlet;import javax.servlet. . ServletRequest;import javax.servlet. . ServletResponse;import javax.servlet. . Session;import model

19、.User;import db.DB;public class MainServlet extends Servlet public void doGet( ServletRequest request, ServletResponse response)throws ServletException, IOException / 设置请求编码request.setCharacterEncoding("gb2312");/ 设置响应编码response.setContentType("gb2312");/ 获得JSP页面填入的用户名的值String us

20、ername=request.getParameter("username");/ 获得JSP页面填入的密码的值String pwd=request.getParameter("pwd");/ 建立DB类对象,使用其中的方法来完成判断DB db=new DB();/ 获得session对象,用来保存信息, Session session=request.getSession();/ 先获得user对象,如果是第一次访问该Servlet,用户对象肯定为空,但如果是第/ 二次甚至是第三次,就不应该在判断该用户的信息。User user=(User) sess

21、ion.getAttribute("user");/ 这里就是判断 ,如果用户是第一次进入,调用DB类里面的方法判断if(user=null) user=db.checkUser(username, pwd);/ 把user对象存在session中session.setAttribute("user", user);if(user!=null)/ 如果根据查询用户不为空的话,表示用户名和密码正确,应该去下一界面。/ 这里是去主界面,主界面中包含了所有留言信息,所以要从留言表中查出来。ArrayList al=db.findLyInfo();/ 包查询的信

22、息保存在session中session.setAttribute("al", al);/ 然后跳转到我们要去的主界面response.sendRedirect("main.jsp");else/ 如果用户名和密码错误的话回到登录界面response.sendRedirect("login.jsp");public void doPost( ServletRequest request, ServletResponse response)throws ServletException, IOException doGet(request

23、,response);8、建立main.jspMainServlet中验证成功后会去main.jsp页面,而且在main.jsp页面中会显示所有留言信息。<% page language = "java" import="java.util.*" pageEncoding = "gb2312"%><%page import = "model.LyTable"%><%page import = "db.DB"%><html><head>&

24、lt;title>留言板信息</title></head><body bgcolor = "#E3E3E3"><form action = "liuyan.jsp" method = "post"><table border="1"><caption>所有留言信息</caption><tr><th>留言人</th><th>留言时间</th><th>留言标题

25、</th><th>留言容</th></tr><% ArrayList al=(ArrayList)session.getAttribute("al"); Iterator iter=al.iterator();while(iter.hasNext() LyTable ly=(LyTable)iter.next();%><tr><td><%=new DB().getUserName(ly.getUserId() %></td><td><%= ly.ge

26、tDate().toString() %></td><td><%= ly.getTitle() %></td><td><%= ly.getContent() %></td></tr><% %></table><input type="submit" value="留言"/></form></body></html>9、建立AddServlet类package servlet;impo

27、rt java.io.IOException;import java.io.PrintWriter;import java.sql.Date;import javax.servlet.ServletException;import javax.servlet. . Servlet;import javax.servlet. . ServletRequest;import javax.servlet. . ServletResponse;import model.*;import db.DB;public class AddServlet extends Servlet public void

28、doGet( ServletRequest request, ServletResponse response)throws ServletException, IOException / 设置请求编码request.setCharacterEncoding("gb2312");/ 设置响应编码response.setContentType("gb2312");/ 获取title容String title=request.getParameter("title");/ 获取content容String content=request.

29、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)

30、;/ 调DB类中的方法判断是否插入成功if(new DB().addInfo(ly)response.sendRedirect("success.jsp");public void doPost( ServletRequest request, ServletResponse response)throws ServletException, IOException doGet(request,response);10、创建成功页面<% page language="java" pageEncoding="gb2312"%>

31、;<html><head><title>成功界面 </title></head><body bgcolor="#E3E3E3">留言成功,点击<a href="mainServlet">这里</a>返回主界面。</body></html>11、配置web.xml在讲Servlet时我们说过,有一个Servlet,就要有其配置文件与其对应,而这里有两个Servlet,所以在web.xml中就应该为它们配置。<servlet>&

32、lt;servlet-name>mainServlet</servlet-name><servlet-class>servlet.MainServlet</servlet-class></servlet><servlet><servlet-name>addServlet</servlet-name><servlet-class>servlet.AddServlet</servlet-class></servlet><servlet-mapping><s

33、ervlet-name>mainServlet</servlet-name><url-pattern>/mainServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>addServlet</servlet-name><url-pattern>/addServlet</url-pattern></servlet-mapping><servlet><servlet-nam

34、e>registerServlet</servlet-name><servlet-class>servlet.RegisterServlet</servlet-class></servlet><servlet-mapping><servlet-name>registerServlet</servlet-name><url-pattern>/registerServlet</url-pattern></servlet-mapping>12、创建注册页面注册页面regist

35、er.jsp。<% page language="java" pageEncoding="gb2312"%><html><head><title>简易留言板</title></head><body bgcolor="#E3E3E3"><form action="registerServlet" method="post"><table><caption>用户注册</caption><tr><td>登录名:</td><td><input type="text" name="username"/></td>&l

温馨提示

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

最新文档

评论

0/150

提交评论