初入Java後端之Servlet
阿新 • • 發佈:2018-10-28
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