当前位置:网站首页>Request object and response object analysis
Request object and response object analysis
2022-07-06 11:14:00 【Call me uncle】
Catalog
②: Response to the garbled problem
request object
When the client sends a request to the server , The server created for this request request object , And in the call Servlet Of service When the method is used , Pass the object to service Method .Request Object encapsulates all the request data sent by the client .
explain :
We use... In browsers , Any operation constitutes a request for information , Send to reuqest object , And send it to Servlet Under the interface service, Down to HttpServlet.
One doGet Small projects :
RegisServlet.java
package com.qcby.servlet;
import java.io.IOException;
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 org.apache.catalina.User;
@WebServlet("/regist")
public class RegisServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println(username + " " + password);
}
}
rigist.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/JiuYueServices/regist" method="get">
user name :<input type="text" name="username"/>
password :<input type="text" name="password"/>
<input type="submit" value=" register ">
</form>
</body>
</html>
<form action="/JiuYueServices/regist" method="get"> Inside JiuYueServices yes Project name
success :
The code problem :
because request Is to receive requests from users , The server converts the request according to the encoding format . The default encoding format on the server side is ISO-8859-1( This encoding does not support Chinese ), Our user browser defaults to utf-8 The encoding format of , So it often produces garbled code . To solve the problem of garbled code , Need to set up request The encoding format , Tell the server how to parse the data . Or after receiving the garbled code , What encoding format is used to restore
resolvent :
Mode one :( all )
request.setCharacterEncoding("UTF-8");
Mode two :( With the help of String Object method , This method is valid for any request , It's all universal )
new String(request.getParameter(name).getBytes("ISO-8859-1"),"UTF-8"))
Request forwarding
Request forwarding is a server behavior , When the client request arrives , The server forwards , The request object is saved , In the address bar url The address will not change , After getting the corresponding , The server will send the request to the client , From beginning to end, only one request was made .
request.getRequestDispatcher(url).forward(request, response);
Two servlet:
/**
*
* @author lenovo
* Request forwarding jump
* You can make the server jump to the client ( Or designated (Servlet)
* characteristic :
* 1. Server side behavior
* 2. The address bar doesn't change
* 3. It's a request from beginning to end
* 4.request The data in servlet Share in program
*/
@WebServlet(value="/s01")
public class Servlet01 extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println("s01="+username + " " + password);
// Request to jump to Servlet02
//req.getRequestDispatcher("s02").forward(req, resp);
// Request to html page
req.getRequestDispatcher("RegistServlet.html").forward(req, resp);
}
}
@WebServlet(value="/s02")
public class Servlet02 extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
req.setCharacterEncoding("UTF-8");
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println("s02=" + username + " " + password);
}
}
Running, we found s01 and s02 Metropolitan output , And only once
request Scope
request Express a request , Just make a request and create a request object , His scope : Only valid in the current request .
use : It is often used to pass parameters between different pages of the same request between servers , It is often used for control value transmission of forms .
Common methods
request.setAttribute(String name,Object value) | Set domain object content | |
request.getAttribute(String name) | Get domain object content | |
request.removeAttribute(String name) | Delete domain object content |
Two servlet
@WebServlet("/s03")
public class Servlet03 extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println(" I am a 03");
req.setAttribute("user", "qcby");
req.setAttribute("age", 18);
req.getRequestDispatcher("s04").forward(req, resp);
}
}
@WebServlet("/s04")
public class Servlet04 extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println(" I am a 04");
System.out.println(req.getAttribute("user"));
System.out.println(req.getAttribute("age"));
}
}
visit :http://localhost:8080/SecondServlet/s03
response object
①:response Main methods
getWriter() | Get character stream ( Only corresponding string data ) |
getOutputStream() | Obtain byte stream ( Can correspond to all data ) |
getWriter()
@WebServlet("/regist")
public class RegistServlet extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter printWriter = resp.getWriter();
printWriter.print("success");
}
}
getOutputStream()
@WebServlet("/regist")
public class RegistServlet extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
// PrintWriter writer = resp.getWriter();
// writer.print("success");
ServletOutputStream stream = resp.getOutputStream();
stream.write("Success".getBytes());
}
}
html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/SecondServlet/regist" method="post">
user name :<input type="text" name="username"/>
password :<input type="text" name="password"/>
<input type="submit" value=" register ">
</form>
</body>
</html>
②: Response to the garbled problem
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "text/html;charset=UTF-8");
边栏推荐
- Postman environment variable settings
- 软件测试-面试题分享
- Django running error: error loading mysqldb module solution
- Copie maître - esclave MySQL, séparation lecture - écriture
- Ansible实战系列三 _ task常用命令
- Solve the problem that XML, YML and properties file configurations cannot be scanned
- CSDN question and answer tag skill tree (I) -- Construction of basic framework
- Ansible practical Series II_ Getting started with Playbook
- [Thesis Writing] how to write function description of jsp online examination system
- Dotnet replaces asp Net core's underlying communication is the IPC Library of named pipes
猜你喜欢
A trip to Macao - > see the world from a non line city to Macao
[recommended by bloggers] C # generate a good-looking QR code (with source code)
[C language foundation] 04 judgment and circulation
csdn-Markdown编辑器
Postman environment variable settings
35 is not a stumbling block in the career of programmers
Picture coloring project - deoldify
Install mysql5.5 and mysql8.0 under windows at the same time
安装numpy问题总结
Postman Interface Association
随机推荐
解决安装Failed building wheel for pillow
Software testing and quality learning notes 3 -- white box testing
Swagger, Yapi interface management service_ SE
MySQL completely uninstalled (windows, MAC, Linux)
[recommended by bloggers] C MVC list realizes the function of adding, deleting, modifying, checking, importing and exporting curves (with source code)
安全测试涉及的测试对象
Redis的基础使用
CSDN问答标签技能树(一) —— 基本框架的构建
Remember the interview algorithm of a company: find the number of times a number appears in an ordered array
Postman environment variable settings
1. Mx6u learning notes (VII): bare metal development (4) -- master frequency and clock configuration
Number game
Principes JDBC
[C language foundation] 04 judgment and circulation
The virtual machine Ping is connected to the host, and the host Ping is not connected to the virtual machine
MySQL完全卸载(Windows、Mac、Linux)
Esp8266 at+cipstart= "", "", 8080 error closed ultimate solution
[recommended by bloggers] C WinForm regularly sends email (with source code)
Ansible实战系列三 _ task常用命令
SSM integrated notes easy to understand version