目录
- package com.mwy.web;
-
- 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;
-
- //http和servlet进行数据交互,动态显示页面内容
-
- @WebServlet("/demo03")
- public class ServletDemo03 extends HttpServlet {
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- String name = req.getParameter("username");
-
- resp.setHeader("content-type","text/html;charset=utf-8");
- resp.getWriter().write("
"
+name+"欢迎您!"); - }
- }
get方法:使用getQueryString方法获取参数
post方法:使用字符输入流获取参数
- package com.mwy.web;
-
- 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.BufferedReader;
- import java.io.IOException;
-
- //request请求方式,获取请求行
- //输出结果:
- //GET
- // /Tomcat_demo1_war
- // http://localhost:8085/Tomcat_demo1_war/req1
- // /Tomcat_demo1_war/req1
- // usernamezhangsan&password=123456
-
- @WebServlet("/req1")
- public class ServletDemo04 extends HttpServlet {
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- // 获取方法:get或者post
- String method = req.getMethod();
- System.out.println(method);
- //获取访问资源路径
- String contextPath = req.getContextPath();
- System.out.println(contextPath);
-
- StringBuffer url = req.getRequestURL();
- System.out.println(url);
-
- String uri = req.getRequestURI();
- System.out.println(uri);
-
- // 参数
- String queryString = req.getQueryString();
- System.out.println(queryString);
-
- //--------------获取请求头,user-agent:浏览器的版本信息-----------
- String header = req.getHeader("user-agent");
- System.out.println(header);
- //输出:
- // Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.70
-
-
- }
-
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- //获取post参数
-
- // 获取字符输入流
- BufferedReader br = req.getReader();
- // 读取数据
- String line=br.readLine();
- System.out.println(line);
-
- // 输出:username=111&password=111
- }
- }
使用的最多的方法是getParameter()获取单个参数值
get和post中方法一样,所以可以只写get中的方法,然后在doPost使用this.doGet(res,req)来直接使用get中已经写好的方法,提高效率。
- package com.mwy.web;
-
- 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.util.Map;
-
- //request通用方法请求参数的使用
-
- @WebServlet("/demo2")
- public class ServletDemo2 extends HttpServlet {
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- //get请求逻辑
- System.out.println("get...");
-
- // 1. 获取所有参数的map集合
- Map
map = req.getParameterMap(); - for(String key:map.keySet()){
- System.out.println(key+":");
-
- String[] values=map.get(key);
- for(String value:values){
- System.out.println(value+" ");
- }
- }
- System.out.println("------------------");
-
- //2. 获取对应的参数值
- String hobbies[]=req.getParameterValues("hobby");
- for(String hobby:hobbies){
- System.out.println(hobby);
- }
-
- // ------------------
- // 1
- // 2
-
- // 3. 根据key获取单个参数值
- String psw = req.getParameter("password");
- String usn = req.getParameter("username");
- System.out.println(psw+" "+usn);
-
-
- }
-
- // get...
- //username:
- //19120543075
- //
- //password:
- //111
- //
- //hobby:
- //1
-
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- //post请求逻辑
- //get请求逻辑
- System.out.println("post...");
- //直接使用get中的方法
- this.doGet(req, resp);
- 1. 获取所有参数的map集合
- // Map
map = req.getParameterMap(); - // for(String key:map.keySet()){
- // System.out.println(key+":");
- //
- // String[] values=map.get(key);
- // for(String value:values){
- // System.out.println(value+" ");
- // }
- // }
- // System.out.println("------------------");
- //
- // //2. 获取对应的参数值
- // String hobbies[]=req.getParameterValues("hobby");
- // for(String hobby:hobbies){
- // System.out.println(hobby);
- // }
- //
- ------------------
- 1
- 2
- //
- 3. 根据key获取单个参数值
- // String psw = req.getParameter("password");
- // String usn = req.getParameter("username");
- // System.out.println(psw+" "+usn);
- }
- //post
- // username:
- //19120543075
- //password:
- //qqqq
- //hobby:
- //1
- //2
- //------------------
- //1
- //2
- //qqqq 19120543075
- }
new中没有servlet的解决方法:
(163条消息) idea中右键new列表里面没有Servlet选项的问题_佐月儿的博客-CSDN博客
修改模板
- package com.mwy.web;
-
- import javax.servlet.*;
- import javax.servlet.http.*;
- import javax.servlet.annotation.*;
- import java.io.IOException;
-
- @WebServlet("/RequestDemo1")
- public class RequestDemo1 extends HttpServlet {
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // 1. 解决乱码:getReader()
- request.setCharacterEncoding("UTF-8");
-
- // 2. 获取username
- String username = request.getParameter("username");
- System.out.println(username);
- }
-
- @Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- this.doGet(request, response);
- }
- }