1. 程式人生 > >粗略總結瀏覽器發出請求向伺服器的過程與程式碼實現

粗略總結瀏覽器發出請求向伺服器的過程與程式碼實現

好久沒有寫部落格了, 年前一直在學習中沒有時間總結, 年後總結一下網頁訪問請求, 整體的一個過程

瀏覽器發出資料請求的過程

    當瀏覽器(客戶端) 發出請求通過域名訪問到伺服器, 伺服器這時得到請求, 啟動Tomcat服務, (我們想要讓伺服器執行自己的程式碼, 將自己的程式碼會放在tomcat上執行), 這樣執行我們的程式程式碼, 解析資料, 用jdbc與資料庫相聯絡, 匹配資料, 資料庫返回結果集 error | success 將這兩種不同的頁面返回給瀏覽器.

程式碼展示:

    Java部分

        建立一個Dynamic Web Project(動態web工程)

        配置tomcat伺服器

        Java部分是severlet接受請求資料的部分

public class TestServlet extends HttpServlet{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String name = req.getParameter("name");
		String password = req.getParameter("password");
		String age = req.getParameter("age");
		String[] likes = req.getParameterValues("likes");
		System.out.println("aaa");
		System.out.println("name: " + name);
		System.out.println("password: " + password);
		System.out.println("age: " + age);
		
		for (String string : likes) {
			System.out.println(string);
		}
		resp.sendRedirect("test.jsp");
		
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		super.doPost(req, resp);
	}

    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">
  <display-name>ServeletRequest</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>index</servlet-name>
    <servlet-class>com.lanou.action.TestServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>index</servlet-name>
    <url-pattern>/test</url-pattern>
  </servlet-mapping>
</web-app>

    HTML部分

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="test.jsp">
		使用者名稱: <input type="text" name="name"><br/>
		密碼: <input type="password" name="password"><br/>
		年齡: <input type="text" name="age"><br/>
		愛好: <input type="checkbox" value="lol" name="likes">LOL
		<input type="checkbox" value="wow" name="likes">MOM
		<input type="checkbox" value="dnf" name="likes">DNF
		<input type="submit" value="註冊">
	</form>
</body>
</html>

    JSP部分

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<% 
		String name = request.getParameter("name"); 
		String password = request.getParameter("password");
		String age = request.getParameter("age");
		String[] likes = request.getParameterValues("likes");
	%>
	

	<%= name %>
	<%= password %>
	<%= age %>
	<% for(int i = 0; i < likes.length; i++){
			out.println(likes[i]);
		}
 	%> 
</body>
</html>