1. 程式人生 > >初入Java後端之Servlet

初入Java後端之Servlet

ini line data orm url 4.5 weight java應用程序 oid

初入Java後端之Servlet

後端 Servlet

什麽是Servlet?

Servlet實際上是一個按照Servlet規範寫的Java類。是運行在Web服務端的Java應用程序。與Java程序的區別是,它裏面封裝了對Http請求的處理。

功能

Servlet主要是對Http請求進行相應的處理,生成動態的Web內容。

實現

原理圖
技術分享圖片

至於Servlet的細節原理和優點,先暫時不說,直接上代碼

總的來說,後端主要是處理前段發送過來的請求,那麽最常見的請求便是post請求和get請求。

Servlet處理Get請求

前段Get請求表單,創建一個1.jsp

文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>初入Servlet</title>
</head>
<body>

<%--使用Get請求,請求的url為/test--%>
<form method="get" action="/test">
    <label>賬號</label>
    <input type="text" name
="name" />
<label>密碼</label> <input type="password" name="pwd" /> </form> </body> </html>

頁面樣式:
技術分享圖片

後端處理Get請求

package com.server;

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; import java.io.PrintWriter; //urlPatterns = {"/test"} 代表請求的路由 @WebServlet(name = "test",urlPatterns = {"/test"}) public class Test extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } //處理get請求的函數 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //獲得賬號 String name = request.getParameter("name"); //獲得賬號 String pwd = request.getParameter("pwd"); //設置響應編碼為utf-8 response.setCharacterEncoding("utf-8"); //告知瀏覽器編碼方式; 瀏覽器默認編碼是GBK response.setHeader("Content-type", "text/html;charset=UTF-8"); PrintWriter writer = response.getWriter(); writer.print("賬號是"+name+","+"密碼是"+pwd); } }

結果:
技術分享圖片

後端處理Post請求:
前端只要將method="get"==>method="post"

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>初入Servlet</title>
</head>
<body>

<%--使用Get請求,請求的url為/test--%>
<form method="post" action="/test">
    <label>賬號</label>
    <input type="text" name="name" />
    <label>密碼</label>
    <input type="password" name="pwd" />
    <input type="submit" value="登錄"/>

</form>
</body>
</html>

後端的請求與doGet一樣,所以可以在doPost請求中調用doGet請求,代碼如下

package com.server;

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;
import java.io.PrintWriter;

//urlPatterns = {"/test"} 代表請求的路由
@WebServlet(name = "test",urlPatterns = {"/test"})
public class Test extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //使用doGet函數處理post請求
        this.doGet(request,response);
    }

    //處理get請求的函數
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //獲得賬號
        String name  = request.getParameter("name");
        //獲得賬號
        String pwd = request.getParameter("pwd");
        //設置響應編碼為utf-8
        response.setCharacterEncoding("utf-8");
        //告知瀏覽器編碼方式; 瀏覽器默認編碼是GBK
        response.setHeader("Content-type", "text/html;charset=UTF-8");

        PrintWriter writer = response.getWriter();
        writer.print("賬號是"+name+","+"密碼是"+pwd);
    }
}

這次是對Java Servlet簡單使用的介紹,下次會介紹更多的關於Servlet的使用
技術分享圖片

初入Java後端之Servlet