JavaWeb上岸功效完成代碼。本站提示廣大學習愛好者:(JavaWeb上岸功效完成代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是JavaWeb上岸功效完成代碼正文
本文實例為年夜家分享了JavaWeb上岸功效的辦法,供年夜家參考,詳細內容以下
起首我們要JavaWeb上岸的根本流程:JSP頁面發送要求——>Servlet——>Servlet經由過程挪用辦法從數據庫中獲得數據並將成果前往頁面。
我們先樹立三個jsp頁面,包含login.jsp(上岸頁面)、index.jsp(顯示上岸勝利後的信息)、error.jsp(登錄掉敗的頁面),個中後兩個頁面的內容可以隨便寫,而login.jsp頁面的重要內容以下:
<form action="LoginServlet" method="post"> 用戶名:<input type="text" name="userName"/> 暗碼:<input type="password" name="password"/> <input type="submit" value="提交"/> </form>
在login.jsp文件的開首我們須要將pageEncoding="ISO-8859-1"改成pageEncoding="utf-8"(同時不要忘卻設置開辟對象的編碼格局,否則jsp頁面會顯示亂碼)
依據用戶名和暗碼兩個屬性我們樹立響應的實體類,並添加get和set辦法,代碼以下:
public class User { private String userName; private String password; 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; } }
而jsp頁面中的action=“LoginServlet”是指將要求發送到Servlet處置。接上去我們轉到Servlet來停止處置:
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.test.dao.UserDao; //創立時為Servlet而不是Class,須要在web.xml中停止設置裝備擺設,設置裝備擺設的代碼Myeclipse將主動生成 public class LoginServlet extends HttpServlet { //創立UserDao的對象,以便於查詢數據庫 UserDao userDao=new UserDao(); //以下doGet辦法和doPost辦法分離對應form表單中的method="get"和method="post" public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //應用getParameter辦法獲得到前台文本框中輸出的值,個中括號內的內容為<input/>標簽中的name屬性 String userName=request.getParameter("userName"); String password=request.getParameter("password"); //挪用UserDao中的getSelect辦法並獲得到前往值 boolean flag=userDao.getSelect(userName, password); //若用戶名和暗碼存在則轉發到index.jsp頁面,不然重定向到error.jsp頁面 if (flag) { request.getRequestDispatcher("index.jsp").forward(request, response); } else response.sendRedirect("error.jsp"); } }
正文 中曾經說的很明確了,就不再反復了,可以看看第26行和29行,個中26行是轉發,29行是重定向,感興致的小同伴可以查查二者的差別。剩下的一部門就是我們之條件到過的關於數據庫的查詢操作了,我們在23行停止了挪用,上面我們完成挪用的辦法:
package com.test.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class UserDao { //銜接數據庫的代碼 public Connection getCon() { //數據庫銜接稱號 String username="root"; //數據庫銜接暗碼 String password=""; String driver="com.mysql.jdbc.Driver"; //個中test為數據庫稱號 String url="jdbc:mysql://localhost:3306/test"; Connection conn=null; try{ Class.forName(driver); conn=(Connection) DriverManager.getConnection(url,username,password); }catch(Exception e){ e.printStackTrace(); } return conn; } //停止查詢的辦法,若含有知足前提的數據則前往true public boolean getSelect(String userName,String password) { boolean flag=false; String sql = "select * from user where userName='"+userName+"' and password='"+password+"'"; Connection conn = getCon(); PreparedStatement pst = null; try { pst = (PreparedStatement) conn.prepareStatement(sql); ResultSet rs = pst.executeQuery(); if (rs.next()) { flag=true; } } catch (Exception e) { } return flag; } }
在這個辦法中我們起首銜接數據庫,然後在查詢的辦法中傳入從jsp頁面獲得到的userName和password,斷定數據庫中能否存在此用戶名和暗碼的用戶,假如存在則前往true,不然前往false(不要忘卻導入數據庫鏈接的包)。
至於數據庫中的字段則參照實體類User樹立便可,即包括userName和password兩個屬性,假如數據庫鏈接還有成績的請參照之前的關於數據庫部門的漫筆。
最初看一下web.xml中的設置裝備擺設:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.test.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> </web-app>
個中<servlet>中的<servlet-name>可以隨便寫,只須要包管高低兩部門雷同便可。
然後是<servlet-class>是本身界說的Servlet的途徑(包括包名),最初是<url-pattern>,外面的內容也能夠隨便寫,然則jsp頁面中form表單的action屬性必需與此稱號雷同(action中不包括"/")
最初我們須要將web項目宣布到tomcat中然後在閱讀器輸出:http://localhost:8080/項目稱號/login.jsp便可以停止拜訪並上岸了。
這只是一個簡略的運用,目標是為了贊助列位小同伴懂得jsp+servlet開辟的根本流程,固然我們在現實開辟的進程中會停止更加精致的朋分,包含接口,完成類等。