架構實例之Demo_JSP_JavaBean_Servlet
1、開發工具和開發環境
開發工具: MyEclipse10,JDK1.6.0_13(32位),Tomcat7.0(32位),mysql5.7.13
開發環境:WIN10
2、Demo_JSP_JavaBean_Servlet實現功能
用戶登錄、用戶注冊、退出登錄。
3、Demo_JSP_Java_Bean_Servlet使用技術
本實例使用了JSP、JavaBean、Servlet和JDBC來實現用戶登錄、用戶注冊和退出登錄功能。系統架構圖如圖一所示:
圖一:Demo_JSP_Java_Bean_Servlet系統架構圖
下面請看圖二(系統中JSP、JavaBean和Servlet之間的邏輯關系圖):
圖二:系統中JSP、JavaBean和Servlet之間的邏輯關系圖
4、具體實現
本篇博客實例代碼是基於本人上一篇博客代碼修改而來,其中修改的部分是增加了一個Servlet,並刪除了JSP文件中處理邏輯層的文件,接下來主要講解一下修改的部分——Servlet:
首先在項目Demo_JSP_Java_Bean_Servlet中新建一個Servlet類:類名命名為UserServlet,包名命名為liu_servlet,該Servlet類主要實現用戶登錄、注冊和退出的邏輯處理,並且調用JavaBean來操作數據庫。UserServlet類的具體代碼如下:
package liu_servlet; import java.io.IOException; import java.io.PrintWriter; 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 liu.UserBean; public class UserServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; /** * Constructor of the object. */ public UserServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String method = (String)request.getParameter("method"); if(method==null) { PrintWriter out = response.getWriter(); out.println("invalid request!"); } else if(method.equals("login")) { Login(request, response); } else if(method.equals("logout")) { Logout(request, response); } else if(method.equals("register")) { Register(request, response); } } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ protected void Login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // get parameters String username = request.getParameter("username"); String password = request.getParameter("password"); // check null if (username == null || password == null) { response.sendRedirect("login.jsp"); return; } // validate UserBean userBean = new UserBean(); boolean isValid = userBean.valid(username, password); if (isValid) { HttpSession session = request.getSession(); session.setAttribute("username", username); response.sendRedirect("welcome.jsp"); return; } else { response.sendRedirect("login.jsp"); return; } } protected void Logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); session.removeAttribute("username"); response.sendRedirect("login.jsp"); } protected void Register(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // get parameters String username = request.getParameter("username"); String password1 = request.getParameter("password1"); String password2 = request.getParameter("password2"); String email = request.getParameter("email"); // check null if (username == null || password1 == null || password2 == null || !password1.equals(password2)) { response.sendRedirect("register.jsp"); return; } // validate UserBean userBean = new UserBean(); boolean isExist = userBean.isExist(username); if(!isExist) { userBean.add(username, password1, email); response.sendRedirect("login.jsp"); return; } else { response.sendRedirect("register.jsp"); return; } } public void init() throws ServletException { // Put your code here } }
接下來,查看Demo_JSP_Java_Bean_Servlet項目下web.xml文件,其中我的web.xml文件代碼如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>UserServlet</servlet-name> <servlet-class>liu_servlet.UserServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UserServlet</servlet-name> <url-pattern>/UserServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
注意:<url-pattern>/UserServlet</url-pattern>這一句我是打開後修改的,未修改之前的代碼應該是:<url-pattern>/servlet/UserServlet</url-pattern>。如果不把/servlet去掉,到時進行邏輯處理跳轉界面時,就會出現在URL中多出了.../servlet/welcome.jsp,從而報Tomcat中沒有welcome.jsp編譯文件的錯誤。
其他部分代碼以及結果展示請查看本人上一篇博客哦:http://www.cnblogs.com/liuzhen1995/p/5700789.html
附:Demo_JSP_Java_Bean_Servlet項目源碼文件百度雲下載鏈接:http://pan.baidu.com/s/1geEOyht 密碼:zhu4