ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022-08-30 第四小组 王星苹 学习笔记

2022-08-31 00:04:32  阅读:174  来源: 互联网

标签:浏览器 请求 08 30 request 2022 转发 response name


学习心得

在浏览器禁用cookie的情况下,仍可以用于会话管理机制的是HTTPSession。

重定向时,浏览器中的地址栏url会发生变化,重定向调用的是HttpServletResponse对象中的方法

获取表单请求参数的正确方法有:request.getParameter(String name)。Map<Stirng,String[]> getParameterMap

Content-Type:是服务器告诉客户端响应数据格式或编码格式

User-Agent:浏览器告诉服务器,使用浏览器的版本

Referer :告诉服务器当前请求从哪来防盗链

心情

今日心情接近于崩溃边缘,404,500一直环绕着我,sql语句没错,地址也没错,就是找不到,还是听别人讲完了之后发现是路径出现了小小的问题,/和\还有很多符号真的快晕了

掌握情况:真的一般但是基本步骤还是能整出来

学习总结:

init方法什么时候执行?

默认当我们第一次访问servlet的时候被调用,延迟加载。

初始化方法只执行一次。

HttpServletRequest--request(请求)

所有和请求相关的操作,都用这个对象来处理

当有请求来的时候,request就被实例化。

HttpServletResponse--response(响应)

所有和响应相关的操作,都用这个对象来处理

当有请求来的时候,response就被实例化。

当你想要给出响应时,使用response。

我们要给出的响应,必须要展示在客户端(浏览器)

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 给出响应
    // 客户端和服务器端的信息传递


    // 设置响应的字符集
    // 一定要放在获取流之前
    // 服务器处理字符串按照UTF-8处理
    response.setCharacterEncoding("utf-8");
    // 添加响应头,告诉浏览器以HTML的格式来解析响应字符串
    response.addHeader("content-type","text/html;charset=utf-8");


    // IO流
    PrintWriter out = response.getWriter();
    // 向客户端回复的数据
    out.write("我是后台,已经接到了你的请求!!!");


    // 流的操作
    out.flush();
    out.close();

 

 


获得当前类的带有泛型类型的父类(运行期this其实是DAOImpl的某个子类)

根据key获取对应的value

request.getParameter("");

获取一个key对应的多个值,返回值为String类型的数组

String[] hobbies = request.getParameterValues("hobby");

System.out.println(Arrays.toString(hobbies));

获取请求中传过来的参数的key值,根据key值获取对应的value值

Enumeration<String> parameterNames = request.getParameterNames();

while(parameterNames.hasMoreElements()){

System.out.println(parameterNames.nextElement());

}

可以获取到请求中的所有的键值对,返回值是一个map集合

这个map集合的key是String,value是String[]

username=admin,password=123456,hobby=a,b,c,gender=man

 

请求转发---由多个servlet来处理同一个请求

请求转发是在服务器上完成的,跟客户端是否无关!!!

 

getRequestDispatcher参数:转发的servlet的地址

forward参数:request,response,把当前servlet用的request和response传给下一个

 

作用域:起作用的区域

往request作用域中添加了一个属性name,值是zhangsan

请求转发的时候是同一个request

request.setAttribute("name","zhangsan");
// name怎么取出来?
System.out.println("demo04.do---name:" + request.getAttribute("name"));
request.getRequestDispatcher("demo05.do").forward(request,response);
//  根据指定的key,删除对应的value
//  request.removeAttribute("name");
 // 获取request作用域中的所有的key
//  Enumeration<String> attributeNames = request.getAttributeNames();

请求转发和重定向的区别:

1.重定向是两次请求,请求转发是一个请求

2.重定向是客户端行为,请求转发是服务器行为

3.重定向浏览器地址会发生改变,转发不会

4.重定向可以定向到任意地址,转发只能项目内转发

 

匹配数据库

    通过JDBC连接数据库,并且查询记录,返回结果

操作步骤:

    1、加载驱动,驱动包放在哪?数据库连接池。
    2、JDBC,工具类。
    3、处理结果
注册--新增
登录--查询

 

* 最常见的客户端传参的方式两种,get,post
* 浏览器地址栏直接输入:一定是get请求
* 超级链接:一定是get请求
* 表单:可以是get,也可以是post,取决于method

* GET请求和POST请求的区别:

* GET:请求的参数会在浏览器的地址栏中显示,不安全;请求的长度限制在1K之内。
*      没有请求体,无法通过request去设置一些参数。
* POST:请求的参数不会在浏览器的地址栏中显示,相对安全。
*       把请求的参数封装成几个数据报文(请求体)。请求参数的长度没有限制。

 

面试题:

/和/*的区别:

     /*属于路径匹配,匹配所有的请求,路径匹配优先级仅次于精确匹配
         /*会覆盖所有的扩展名匹配,非常恶劣的匹配规则。
     /是servlet中的特殊的匹配模式,优先级最低,不会覆盖任何的url-pattern
         匹配所有的请求


/和/*拦截静态资源


先建好自己的数据库,表还有信息,然后连上,进入java,先把基本的web搭好。
html文件就是网页的样子,相当于前端。
再写servlet里面的东西,相当于后端的,保存啊,清除啊,还有一系列增删改查。
tomcat Run一下,看看能不能出来,当然也会踩坑出现404,500,505......等一堆异常
有内部发生问题,还有是sql语句有问题。要学会看报错信息。



druid.properties里面:
druid.url = jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
druid.username = root
druid.password = root
druid.driverName = com.mysql.cj.jdbc.Driver

druid.initialSize=10
druid.maxActive=20
druid.maxWait=20
hikari.properties里面:
jdbcUrl=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
username=root
password=root
driverClassName=com.mysql.cj.jdbc.Driver

   jdbc.peoperties里面: 

mysql.url = jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
mysql.username = root
mysql.password = root
mysql.driverName = com.mysql.cj.jdbc.Driver

 

标签:浏览器,请求,08,30,request,2022,转发,response,name
来源: https://www.cnblogs.com/wxp0909/p/16641393.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有