RequestResponse
创始人
2024-04-26 10:22:07
0

image-20221217164932109

Request

Request继承体系

image-20221217171358015

Request获取请求数据

获取请求数据

image-20221217172606995

通用方式获取请求参数

image-20221217193709478

@WebServlet("/req1")
public class req1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//System.out.println("get...");// 获取所有参数的Map集合Map parameterMap = req.getParameterMap();for (String s : parameterMap.keySet()) {System.out.print(s+":");String[] strings = parameterMap.get(s);for (String string : strings) {System.out.print(string+" ");}System.out.println();}// 根据key获取参数值。数组System.out.println("----------------");String[] hobbies = req.getParameterValues("hobby");for (String hobby : hobbies) {System.out.println(hobby);}// 根据key获取单个参数值System.out.println("-------------------");String username = req.getParameter("username");String password = req.getParameter("password");System.out.println(username);System.out.println(password);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doGet(req,resp);}
}

image-20221217194508775

请求参数中文乱码

image-20221217213143179

@WebServlet("/req2")
public class req2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String username = request.getParameter("username");username = new String(username.getBytes(StandardCharsets.ISO_8859_1),StandardCharsets.UTF_8);System.out.println(username);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");this.doGet(request, response);}
}

image-20221217213224318

Request请求转发

image-20221217222149294

Response

image-20221218153248538

Response设置响应数据功能介绍

image-20221218153557844

Response完成重定向

image-20221218155622573

目录问题

image-20221218160257377

动态获取虚拟目录:

image-20221218160502108

Response响应字符数据

image-20221218161944387

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 设置解析方式,和字符集//response.setHeader("content-type","text/html");response.setContentType("text/html;charset=utf-8");// 获取流PrintWriter writer = response.getWriter();writer.write("

侯一鸣

"); }

Response响应字节数据

image-20221218163234515

    @Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 读取文件FileInputStream fis = new FileInputStream("d://桌面/1.png");// 获取response的输出流ServletOutputStream os = response.getOutputStream();// 完成流的拷贝
//        byte[] bytes = new byte[1024];
//        int len = 0;
//        while ((len = fis.read(bytes)) != -1){
//            os.write(bytes,0,len);
//        }IOUtils.copy(fis,os);fis.close();}

案例

用户登录

image-20221218214554146

image-20221218220015936

编写LoginServlet方法

@WebServlet("/loginServlet")
public class loginServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String username = request.getParameter("username");String password = request.getParameter("password");//调用maybatis查询String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);User user = mapper.select(username, password);sqlSession.close();// 判断response.setContentType("text/html;charset=utf-8");PrintWriter writer = response.getWriter();if(user != null){writer.write("登陆成功");}else{writer.write("登陆失败");}}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

用户注册

image-20221219111745533

registerServlet

@WebServlet("/registerServlet")
public class registerServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String username = request.getParameter("username");String password = request.getParameter("password");User user = new User();user.setUsername(username);user.setPassword(password);String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);User u = mapper.selectByUsername(username);response.setContentType("text/html;charset=utf-8");PrintWriter writer = response.getWriter();if (u == null){mapper.add(user);sqlSession.commit();// 增删改需要提交事务sqlSession.close();writer.write("注册成功");}else{writer.write("用户名已存在");}}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

SqlSessionFactory工具类抽取

image-20221219113835251

package com.houyiming.util;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;
import java.io.InputStream;public class SqlSessionFactoryUtils {private static SqlSessionFactory sqlSessionFactory;static {// 静态代码块会随着类的加载自动执行,且只执行一次try {String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}public static SqlSessionFactory getSqlSessionFactory(){return sqlSessionFactory;}
}

可以用一行代码代替原来的三行

// 原来的三行
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 新的一行
SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();
= "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 新的一行
SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...