RequestResponse
创始人
2024-04-26 11:43:54

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();

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...