JavaEE應用開發(fā)基礎實驗_第1頁
JavaEE應用開發(fā)基礎實驗_第2頁
JavaEE應用開發(fā)基礎實驗_第3頁
JavaEE應用開發(fā)基礎實驗_第4頁
JavaEE應用開發(fā)基礎實驗_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、. . . . Java EE 應用開發(fā)基礎實驗要求:用JSP、Servlet和JavaBean開發(fā)一個簡單的留言系統(tǒng)。相關界面:登錄:登陸成功:留言:留言成功:返回主界面:實驗步驟:1、需求分析既然是留言系統(tǒng),肯定要有用戶登錄,所以需要一個用戶表(userTable)。字段包括:id、username和password。其中id設為自動增長的int型,并設為主鍵。username和password都設為varchar型。登錄成功后要有個主界面,顯示別人和自己的留言信息,那就應該有個留言表(lyTable)。字段包括:id、userId、date、title、content。其中id設為自動增

2、長的int型,并設為主鍵。userId是user表中的id,表明該條留言是該用戶留的。2、建立數(shù)據(jù)庫與表(該步驟省略)建立數(shù)據(jù)庫,命名為“JSP”,這里我們用的是MySQL。然后在該數(shù)據(jù)庫中建立上面提到的兩個表: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、創(chuàng)建登錄頁面首先還是先創(chuàng)建登錄界面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;/ 在構(gòu)造函數(shù)中建立與數(shù)據(jù)庫的連接,這樣在建立DB對象時就連接了數(shù)據(jù)庫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();/ 根據(jù)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;/ 根據(jù)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");/ 這里就是判斷 ,如果用戶是第一次進入,調(diào)用DB類里面的方法判斷if(user=null) user=db.checkUser(username, pwd);/ 把user對象存在session中session.setAttribute("user", user);if(user!=null)/ 如果根據(jù)查詢用戶不為空的話,表示用戶名和密碼正確,應該去下一界面。/ 這里是去主界面,主界面中包含了所有留言信息,所以要從留言表中查出來。ArrayList al=db.findLyInfo();/ 包查詢的信

22、息保存在session中session.setAttribute("al", al);/ 然后跳轉(zhuǎn)到我們要去的主界面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對象,把數(shù)據(jù)封裝進去LyTable ly=new LyTable();ly.setUserId(user.getId();/ 參數(shù)為獲取的當前時間ly.setDate(new Date(System.currentTimeMillis();ly.setTitle(title);ly.setContent(content)

30、;/ 調(diào)DB類中的方法判斷是否插入成功if(new DB().addInfo(ly)response.sendRedirect("success.jsp");public void doPost( ServletRequest request, ServletResponse response)throws ServletException, IOException doGet(request,response);10、創(chuàng)建成功頁面<% 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、創(chuàng)建注冊頁面注冊頁面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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論