學JavaEE也有一段時間了,跟着老師和教材作了很多東西,可是一直以來沒時間寫博客,今天就把之前寫的一個簡易留言板簡單發一下吧。html
主要用的開發工具爲 MyEclipse(201四、2016都可)、Tomcat 7.0、SQL Server 201六、SSMS數據庫管理工具、瀏覽器等。java
開發環境爲windows系統,已安裝配置Java最新版開發環境。web
登陸、註冊、並能夠在留言板留言,全部留言內容都可見。sql
所採用JSP+Servlet+JavaBean傳統方式,僅限於學習使用。數據庫
JSP代碼:windows
login.jsp數組
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>登陸界面</title> </head> <body bgcolor="#ddd" style="font-family:Microsoft YaHei" > <div style="text-align:center;margin-top:120px"> <h1 >請登陸</h1> <form action="loginServlet" method="post"> <table style="margin-left:40%"> <caption>用戶登陸</caption> <tr> <td>登陸名:</td> <td><input name="name" type="text" size="20"></td> </tr> <tr> <td>密碼:</td> <td><input name="password" type="password" size="21"></td> </tr> </table> <input type="submit" value="登陸"> <input type="reset" value="重置"> </form> <br> <a href="register.jsp">註冊</a> </div> </body> </html>
register.jsp瀏覽器
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>註冊界面</title> </head> <body bgcolor="#ddd" style="font-family:Microsoft YaHei" > <div style="text-align:center;margin-top:120px"> <h1 >請註冊</h1> <form action="registerServlet" method="post"> <table style="margin-left:40%"> <caption>用戶註冊</caption> <tr> <td>ID:</td> <td><input name="id" type="text" size="20"></td> </tr> <tr> <td>登陸名:</td> <td><input name="name" type="text" size="20"></td> </tr> <tr> <td>密碼:</td> <td><input name="password" type="password" size="21"></td> </tr> </table> <input type="submit" value="註冊"> <input type="reset" value="重置"> </form> <br> <a href="login.jsp">登陸</a> </div> </body> </html>
error.jspsession
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>登陸出錯界面</title> </head> <body bgcolor="#ddd" style="font-family:Microsoft YaHei"> <div style="text-align:center;margin-top:130px"> <p>輸入的用戶名不存在或者密碼錯誤</p> <a href="login.jsp">點我返回登錄界面</a> </div> </body> </html>
main.jspapp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@page import="org.model.MessBoar" %> <%@page import="org.dao.*" %> <html> <head> <title>留言板界面</title> </head> <body bgcolor="#ddd" > <div style="margin-left:35%;margin-top:100px;font-family:Microsoft YaHei"> <h1 style="margin-left:5%">這裏是留言板主界面</h1> <form action="leavemessage.jsp" method="post"> <table border="1"> <caption>全部留言信息</caption> <tr><th>留言人姓名</th><th>留言時間</th> <th>留言標題</th><th>留言內容</th></tr> <% ArrayList<MessBoar> al=new ArrayList<MessBoar>(); al= (ArrayList)session.getAttribute("al"); if(al!=null){ Iterator iter=al.iterator(); while(iter.hasNext()){ MessBoar mb=(MessBoar)iter.next(); %> <tr><td><%= new LoginDao().getName(mb.getId()) %></td> <td><%= mb.getTime().toString() %></td> <td><%= mb.getTitle() %></td> <td><%= mb.getMessage() %></td></tr> <% } } %> </table> </form> <a style="margin-left:22%" href="leavemessage.jsp">留言</a> </div> </body> </html>
leavemessage.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@page import="org.model.MessBoar" %> <%@page import="org.dao.*" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>留言界面</title> </head> <body bgcolor="#ddd" style="font-family:Microsoft YaHei"> <div style="text-align:center;margin-top:140px"> <h1 >請留言</h1> <form action="leaveMessageServlet" method="post"> <table style="margin-left: 37%" border="1"> <caption>填寫留言信息</caption> <tr><td>留言標題</td> <td><input type="text" name="title"/></td></tr> <tr><td>留言內容</td> <td><textarea name="message" rows="5" cols="35"></textarea></td> </tr> </table> <input type="submit" value="提交"/> <input type="reset" value="重置"/> </form> <a href="main.jsp">返回留言板界面</a> </div> </body> </html>
success.jsp
<%@ page language="java" pageEncoding="gb2312"%> <html> <head> <title>成功界面 </title> </head> <body> <div bgcolor="#ddd" style="margin-left:42%;margin-top:240px;font-family:Microsoft YaHei""> 留言成功,單擊<a href="loginServlet">這裏</a>返回主界面。 </div> </body> </html>
web.xml(配置)
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <servlet> <servlet-name>loginServlet</servlet-name> <servlet-class>org.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>loginServlet</servlet-name> <url-pattern>/loginServlet</url-pattern> </servlet-mapping> <servlet> <servlet-name>registerServlet</servlet-name> <servlet-class>org.servlet.RegisterServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>registerServlet</servlet-name> <url-pattern>/registerServlet</url-pattern> </servlet-mapping> <servlet> <servlet-name>leaveMessageServlet</servlet-name> <servlet-class>org.servlet.LeaveMessageServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>leaveMessageServlet</servlet-name> <url-pattern>/leaveMessageServlet</url-pattern> </servlet-mapping> <display-name>messageBoard</display-name> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> </web-app>
DBconn.java
package org.db; import java.sql.*; public class DBconn { public static Connection conn; //Connection對象(連接) //鏈接數據庫 public static Connection getConn(){ try{ //加載註冊SQLSever的JDBC驅動 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //編寫連接字符串,建立而且獲取連接 conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=MessageBoard","sa","19961002happy"); return conn; }catch(Exception e){ e.printStackTrace(); return null; } } public static void CloseConn(){ try{ conn.close(); }catch(Exception e){ e.printStackTrace(); } } }
LoginDao.java
package org.dao; import java.sql.*; import org.model.*; import org.db.*; import java.util.ArrayList; public class LoginDao { Connection conn=DBconn.getConn(); ; //數據庫鏈接對象 PreparedStatement pstmt; public Login checkLogin(String name,String password){ //驗證用戶名密碼 try{ pstmt=conn.prepareStatement("select*from[loginss] where name=? " + " and password=?"); pstmt.setString(1, name); //設置SQL語句參數 pstmt.setString(2, password); //設置SQL語句參數 ResultSet rs=pstmt.executeQuery(); //執行查詢,返回結果集 if(rs.next()){ //經過JavaBean保存值 Login login=new Login(); login.setId(rs.getInt(1)); login.setName(rs.getString(2)); login.setPassword(rs.getString(3)); login.setRole(rs.getInt(4)); return login; //返回JavaBean對象 } return null; //驗證失敗返回null }catch(Exception e){ e.printStackTrace(); return null; } } public ArrayList<MessBoar> findMbInfo(){ try{ ArrayList<MessBoar> al=new ArrayList<MessBoar>(); pstmt=conn.prepareStatement("select * from [messagess]"); ResultSet rs=pstmt.executeQuery(); while(rs.next()){ MessBoar mb=new MessBoar(); mb.setId(rs.getInt(1)); mb.setName(rs.getString(2)); mb.setTime(rs.getDate(3)); mb.setTitle(rs.getString(4)); mb.setMessage(rs.getString(5)); al.add(mb); } return al; }catch(Exception e){ e.printStackTrace(); return null; } } public String getName(int id){ String name=null; try{ pstmt=conn.prepareStatement("select name from [loginss] where id=?"); pstmt.setInt(1, id); ResultSet rs=pstmt.executeQuery(); while(rs.next()){ name=rs.getString(1); } return name; }catch(Exception e){ e.printStackTrace(); return null; } } public boolean addInfo(MessBoar mb){ try{ pstmt=conn.prepareStatement("insert into [messagess] values(?,?,?,?,?)"); pstmt.setInt(1, mb.getId()); pstmt.setString(2, mb.getName()); pstmt.setDate(3, mb.getTime()); pstmt.setString(4, mb.getTitle()); pstmt.setString(5, mb.getMessage()); pstmt.executeUpdate(); return true; }catch(Exception e){ e.printStackTrace(); return false; } } public boolean insertUser(int id,String name,String password){ try{ pstmt=conn.prepareStatement("insert into [loginss] values(?,?,?,?)"); pstmt.setInt(1, id); pstmt.setString(2, name); pstmt.setString(3, password); pstmt.setInt(4, 0); pstmt.executeUpdate(); return true; }catch(Exception e){ e.printStackTrace(); return false; } } }
Login.java
package org.model; public class Login { private Integer id; private String name; private String password; private int role; public Integer getId(){ return this.id; } public void setId(Integer id){ this.id=id; } public String getName(){ return this.name; } public void setName(String name){ this.name=name; } public String getPassword(){ return this.password; } public void setPassword(String password){ this.name=password; } public int getRole(){ return this.role; } public void setRole(int role){ this.role=role; } }
message.java
package org.model; import java.sql.*; public class MessBoar { private int id; private String name; private Date time; private String title; private String message; public int getId() { return id; } public void setId(int id) { this.id=id; } public String getName() { return name; } public void setName(String name) { this.name=name; } public Date getTime() { return time; } public void setTime(Date time) { this.time=time; } public String getTitle() { return title; } public void setTitle(String title) { this.title=title; } public String getMessage() { return message; } public void setMessage(String message) { this.message=message; } }
LeaveMessageServlet.java
package org.servlet; import java.io.IOException; import java.sql.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.dao.LoginDao; import org.model.*; public class LeaveMessageServlet extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ // 設置請求編碼 request.setCharacterEncoding("gb2312"); // 設置響應編碼 response.setContentType("gb2312"); // 獲取title內容 String title=request.getParameter("title"); // 獲取message內容 String message=request.getParameter("message"); // 從session中取出當前用戶對象 Login leaveMessageBoard=(Login) request.getSession().getAttribute("login"); // 創建留言表對應JavaBean對象,把數據封裝進去 MessBoar mb=new MessBoar(); mb.setId(leaveMessageBoard.getId()); // 參數爲獲取的當前時間 mb.setName(leaveMessageBoard.getName()); mb.setTime(new Date(System.currentTimeMillis())); mb.setTitle(title); mb.setMessage(message); // 調DB類中的方法判斷是否插入成功 if(new LoginDao().addInfo(mb)){ response.sendRedirect("success.jsp") ; } } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ doGet(request,response); } }
LoginServlet.java
package org.servlet; import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import org.model.*; import org.dao.*; public class LoginServlet extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ request.setCharacterEncoding("gb2312"); //設置請求編碼 response.setContentType("gb2312"); //設置響應編碼 LoginDao loginDao= new LoginDao(); HttpSession session=request.getSession(); // 先得到user對象,若是是第一次訪問該Servlet,用戶對象確定爲空,但若是是第 Login l=(Login) session.getAttribute("login"); // 二次甚至是第三次,就不該該再判斷該用戶的信息 if(l==null) l = loginDao.checkLogin(request.getParameter("name"),request.getParameter("password")); if(l!=null){ //若是登錄成功 session.setAttribute("login",l); //將獲取的對象保存在session中 ArrayList al=loginDao.findMbInfo(); //獲取留言板的內容,返回一個數組 session.setAttribute("al", al); //把數組保存起來 response.sendRedirect("main.jsp"); //驗證成功跳轉到 main.jsp } else{ //驗證失敗跳轉到 error.jsp response.sendRedirect("error.jsp"); } } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ doGet(request,response); } }
RegisterServlet.java
package org.servlet; import java.io.IOException; import org.dao.*; 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"); int id=Integer.valueOf(request.getParameter("id")); String name=request.getParameter("name"); String password=request.getParameter("password"); if(new LoginDao().insertUser(id ,name, password)){ response.sendRedirect("login.jsp"); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }
粘代碼粘得都心累,比較忙就不作太多介紹了。數據庫須要本身新建,對應數據類型創建就能夠了。下次有空回頭複習時再加上詳細介紹吧