1. 程式人生 > 實用技巧 >java 前後端通過Servlet互動

java 前後端通過Servlet互動

html

有序列表 ol li
無需列表 ul

<body>
電腦科學與工程學院<ul>
<li>電腦科學與工程</li>
<li>計算機網路技術</li>
</ul>


河南特產<ol>
<li>新鄭大棗</li>
<li>靈寶肉夾饃</li>
</ol>


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">
<!--歡迎介面 當伺服器啟動載入後,會找該專案設定的首次訪問的web資源
一般情況下,我們都設定的是web頁面,充當歡迎介面
對於tomcat伺服器的預設設定的歡迎介面是以index開頭的web頁面-->

<welcome-file-list>
<!--把註冊頁面設定為該專案的歡迎介面
web.xml檔案內容,一旦更新修改,是一定要重新啟動伺服器的
當你新建一個Servlet類的時候,也是需要重新啟動伺服器的
如果在歡迎介面標記中填寫的歡迎頁面檔案不存在,
那麼客戶端會丟擲404異常 請求資源找不到一般都是路徑不匹配
在歡迎列表中我們可以配置多個歡迎介面
那麼程式會首先載入第一個配置的歡迎介面,如果第一個歡迎介面找不到
程式會載入第二個歡迎介面依此類推
如果在歡迎列表中,所有的歡迎介面都不存在那麼程式就會丟擲404異常

-->
<welcome-file>/login.html</welcome-file>
<!--<welcome-file>/register.html</welcome-file>-->
</welcome-file-list>


<!--配置register 請求資源路徑對映
<servlet-name>標記中,標記文字資訊是任意的,最好見名之意
通過url資源路徑去對映提供服務的Servlet類 類名的全路徑:包名+類名-->
<servlet>
<servlet-name>register</servlet-name>
<servlet-class>com.zhiyou100.RegisterServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>register</servlet-name>
<url-pattern>/register</url-pattern>
</servlet-mapping>




</web-app>



java
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
/*
需求:
使用者登入功能:
1.如果使用者名稱和密碼正確我們就跳轉到成功介面success.html
2.如果使用者名稱和密碼不正確我們就跳轉到失敗介面 fail.html

*/
HttpServletRequest request=(HttpServletRequest)servletRequest;
HttpServletResponse response=(HttpServletResponse)servletResponse;
//設定編碼字符集
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");

//接收引數資訊
String username = request.getParameter("username");
String password = request.getParameter("password");
//校驗使用者資訊 使用者名稱為admin 密碼為123456
//避免空指標現象 == 相等判斷 只判斷記憶體地址值 equals()比較兩次,先比較記憶體地址(如果相等直接返回true)如果不相等再比較內容值
if("admin".equals(username) && "123546".equals(password)){
//內部轉發 是由請求發起的 請求資源路徑 請求的是成功介面
//語法格式:request.getRequestDispatcher("/跳轉資源路徑").forward(request,response);


request.getRequestDispatcher("/success.html").forward(request,response);
//重定向
//response.sendRedirect("/success.html");
}else{
//內部轉發 是由請求發起的 請求資源路徑 請求的是失敗介面
request.getRequestDispatcher("/fail.html").forward(request,response);
}
}








//Servlet
/*@WebServlet("/register")//資源路徑對映*/
public class RegisterServlet implements Servlet {
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
//提供使用者註冊服務 httphttp請求-http響應)
//由客戶端向後端的伺服器發起,有時會攜帶請求引數
//響應:由後臺伺服器端向客戶端瀏覽器發起的,有時也會攜帶響應資料
//
HttpServletRequest request = (HttpServletRequest)servletRequest;
HttpServletResponse response = (HttpServletResponse)servletResponse;
//設定編碼字符集 防止中文亂碼 ISO-8859-1拉丁文 GB2312簡體--->GBK國標所有中國 UTF-8萬國 Unicode
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html char=UTF-8");
response.setCharacterEncoding("UTF-8");
//接收客戶端傳輸的引數值request.getParameter("name屬性值/引數名稱");
String username = request.getParameter("username");//使用者名稱
String phone = request.getParameter("phone");//手機號
String email = request.getParameter("email");//email
String password = request.getParameter("password");//密碼
//回傳資料 把後端資料傳輸到前端瀏覽器頁面
//h1--->h6 大標題--->小標題 動態的構畫頁面
response.getWriter().write("<h1>Servlet架構很厲害</h1>");
response.getWriter().write("使用者名稱:"+username+"<br>"+
"手機號:"+phone+"<br>"+
"郵箱:"+email+"<br>"+
"密碼:"+password+"<br>");
}