RequestResponse
创始人
2024-04-26 09:47:34
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();

相关内容

热门资讯

织密“法治保护网”!贵州出台野... 1月15日,记者从《贵州省野生动物保护条例》政策解读新闻发布会上获悉,《条例》共5章44条,包括总则...
《贵州省野生动物保护条例》为水... 1月15日,记者从《贵州省野生动物保护条例》政策解读新闻发布会上获悉,《条例》主要从职责分工、协同保...
原创 韩... 当地时间1月13日晚,韩国前总统尹锡悦涉嫌在其任内发动紧急戒严,触犯内乱罪一案迎来了结案庭审。检方在...
从“旁观者”变为“主人翁” !... 1月15日,记者从《贵州省野生动物保护条例》政策解读新闻发布会上获悉,《条例》从基层动员、渠道搭建、...
强化本土特色物种保护!《贵州省... 1月15日,记者从《贵州省野生动物保护条例》政策解读新闻发布会上获悉,《条例》围绕野生动物及其栖息地...
锦旗映初心服务暖商户——永年区... 一面锦旗,一份认可;一次调解,一份担当。1月13日,永年区政府街天骏广场商户石女士将一面印有“心系商...
从美国回来,黄国昌自提防务特别... 从美国回台后,民众党主席黄国昌在记者会上明确表示:民众党反对台行政机构版本的防务特别预算条例,我们将...
英特科技:修订对外投资管理制度... 英特科技公告称,公司修订了对外投资管理制度,明确对外投资是指公司以获取收益为目的将货币资金、实物或无...