程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JavaWeb上岸功效完成代碼

JavaWeb上岸功效完成代碼

日期:2017/7/27 17:32:08      編輯:關於JAVA

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開辟的根本流程,固然我們在現實開辟的進程中會停止更加精致的朋分,包含接口,完成類等。

  1. 上一頁:
  2. No
Copyright © 程式師世界 All Rights Reserved