<servlet> <servlet-name>Servlet1</servlet-name> //類名 <servlet-class>com.zhang.demo1.Servlet1</servlet-class> //路徑 </servlet> <servlet-mapping> <servlet-name>Servlet1</servlet-name> //類名 <url-pattern>/test01</url-pattern> </servlet-mapping>
1.新建一個properties文件html
driver=com.mysql.jdbc.Driver username=root password=123456 URL=jdbc:mysql://locahost:3306/smbms
2.編寫Servlet類前端
package com.zhang.demo; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; public class Servlet03 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String realPath = this.getServletContext().getRealPath("/WEB-INF/classes/resour/database.properties"); System.out.println("獲取的真實路徑"+realPath); Properties properties = new Properties(); FileInputStream is = new FileInputStream(realPath); properties.load(is); String driver = properties.getProperty("driver"); String username = properties.getProperty("username"); String password = properties.getProperty("password"); String url = properties.getProperty("url"); //網頁輸出 response.getWriter().println(driver); response.getWriter().println(username); response.getWriter().println(password); response.getWriter().println(url); //控制檯輸出 System.out.println(driver); System.out.println(username); System.out.println(password); System.out.println(url); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } }
3.配置web.xml文件java
<servlet> <servlet-name>Servlet03</servlet-name> <servlet-class>com.zhang.demo.Servlet03</servlet-class> </servlet> <servlet-mapping> <servlet-name>Servlet03</servlet-name> <url-pattern>/test3</url-pattern> </servlet-mapping>
4.查看訪問頁面;mysql
上述代碼編譯運行的結果以下圖所示:web
網頁輸出:sql
控制檯輸出:數據庫
package com.zhang.demo; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class RequestServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //查看request對象的方式 System.out.println(request.getContextPath()); //得到web項目路徑 System.out.println(request.getRequestURI()); //請求的URL路徑 //Remote 遠程 System.out.println(request.getRemoteUser()); //得到遠程的用戶名 System.out.println(request.getRequestedSessionId()); //得到SessionId; System.out.println(request.getServletPath()); //請求servlet的url System.out.println(request.getLocalAddr()); //得到本地地址 防火牆 System.out.println(request.getLocalName()); //得到本地名字 System.out.println(request.getLocalPort()); //得到訪問的端口號 } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } }
<servlet> <servlet-name>RequestServlet</servlet-name> <servlet-class>com.zhang.demo.RequestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>RequestServlet</servlet-name> <url-pattern>/RD</url-pattern> </servlet-mapping>
1.編寫註冊頁面,表單提交的位置 action:服務項目的路徑/servlet對應的請求ur;例如: <form action="${pageContext.request.contextPath}/RD2" method="post"> 瀏覽器
<%-- Created by IntelliJ IDEA. User: 張滄 Date: 2019/7/16/016 Time: 23:12 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>註冊</title> </head> <body> <%--JSP的註釋--%> <%--Form表單 action:表明要提交的路徑,表單要提交到哪裏 ,能夠提交到一個Servlet //提交到Servlet須要,獲取到Web項目的路徑下的Servlet method: 提交表單的方式 --%> <h1>註冊</h1> <form action="${pageContext.request.contextPath}/RD2" method="post"> <p>用戶名:<input type="text" name="username"></p> <p>密碼:<input type="password" name="password"></p> <p> <input type="submit"> <input type="reset"> </p> </form> </body> </html>
2.服務器
接收前端傳遞的控件信息, request.getParameter(「控件的name‘);例如: String username = request.getParameter("username"); String password = request.getParameter("password"); app
package com.zhang.demo; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class RequestServlet2 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //經過HttpServletRequest獲取前端用戶提交的信息 //req.getParameterValues(); 得到前端傳遞的控件信息,經過控件的name;可是能夠接受多個參數的控件,好比(多選框....) //req.getParameter(); 得到前端傳遞的控件信息,經過控件的name; request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); String username = request.getParameter("username"); String password = request.getParameter("password"); //鏈接數據庫,比較數據庫中的信息是否匹配 if (username.equals("admin")&&password.equals("1234567")){ System.out.println("登陸成功!"); //跳轉到成功頁面 }else { System.out.println("登陸失敗!"); //提示從新註冊 } System.out.println(username); System.out.println(password); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } }
3.配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>RequestServlet2</servlet-name> <servlet-class>com.zhang.demo.RequestServlet2</servlet-class> </servlet> <servlet-mapping> <servlet-name>RequestServlet2</servlet-name> <url-pattern>/RD2</url-pattern> </servlet-mapping> </web-app>
4.提交測試
提交以前的路徑
在提交後的路徑
以上代碼編譯運行的結果以下所示:
這是測試三種不一樣的結果;
package com.zhang.demo; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class RequestServlet3 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8");//處理亂碼 //處理前端的請求 String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println("接收到的用戶名:"+username+"\n密碼:"+password+"\n愛好:"); String[] hobbies = request.getParameterValues("hobby"); for (String hobby : hobbies) { System.out.println(hobby); } //重定向:服務器告訴客戶端你應該請求另一個地址; (地址欄會變) //resp.sendRedirect("url"); //轉發:服務器把這個請求轉向另一個Servlet去處理; (地址欄不會變) //RequestDispatcher ,須要使用RequestDispatcher來進行處理,咱們須要得到這個類 //參數就是他要轉發到的頁面 /* RequestDispatcher requestDispatcher = req.getRequestDispatcher("/success.jsp"); requestDispatcher.forward(req,resp); */ try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } request.getRequestDispatcher("/success.jsp").forward(request,response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } }