JSP的数据传递和保存

jsp声明

<%@ page    %>  表示 page指令    import页面要导入的包/资源
ISO-8859-1  对中文会有乱码 改成UTF-8

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

JSP的数据传递和保存

<form action="表单请求的地址/数据传递的地址/xxx.html/xxx.jsp" method="GET/POST">

</form>

JSP的Java脚本 -> Java文件中的_jspService(); 局部代码

JSP的Java表达式 -> Java文件中的_jspService(); out.print();

JSP的Java声明 -> Java文件中的成员信息

1. 掌握JSP内置对象的使用

HttpServletRequest request
HttpServletResponse response

PageContext pageContext;
HttpSession session = null;
ServletContext application;
ServletConfig config;

JspWriter out = null;

Object page = this;
exception
out.print();
out.write();

1.1 掌握request对象的使用

request对象可以作为数据的请求接收对象。

  1. 接收HTTP请求中的指定参数信息:String getParameter(String name);
  2. 接收HTTP请求中的指定参数信息(多值型):String[] getParameterValues(String name);
  3. 将请求中的所有参数信息全部存储为Map集合:Map<String,String[]> getParameterMap();
  4. 设置请求的编码:void setCharacterEncoding(String charsetName);
  5. 请求转发:getRequest请求Dispatcher调度员(String path).forward(request,response);
  6. 向request作用域[数据在一次请求内有效]存储数据:void setAttribute(String name,Object value);
  7. 从request作用域取数据:Object getAttribute(String name);

请求中文乱码(POST请求)

  1. setCharacterEncoding(String env);

    request.setCharacterEncoding("UTF-8");
    
  2. 将字符串先解码为字节数组 然后利用String的构造将其重新以UTF-8编码

    String username = new String(name.getBytes("ISO-8859-1"),"UTF-8");
    

GET请求中文乱码已经在Tomcat 8.0时代解决了。

Change the default URIEncoding for all connectors from ISO-8859-1 to UTF-8. (markt)

但是8.0之前版本有问题,可以通过URIEncoding属性来解决。

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

1.2 掌握response对象的使用

response对象可以作为数据的响应对象。

  1. 重定向:response.sendRedirect(String path);

[面试题]GET和POST请求的区别

HEAD 、PUT、DELETE…
在这里插入图片描述

[面试题]请求转发和重定向的区别

它们都是页面跳转的方式。

**请求转发:**1次请求

它是服务器内部的资源跳转,它的地址栏就是这次请求的地址。

因为是1次请求,所以request作用域(在一次请求内 数据有效)就可以使用了。

请求转发只能跳转到服务器内部的资源地址。

**重定向:**2次请求

它是客户端发起两次请求,它的地址栏是第二次请求的地址。

因为是2次请求,所以request作用域无法使用。

重定向可以访问任意的资源地址。

1.3 掌握session对象的使用

request(请求)作用域:一次请求内有效

​ 类比:你在打电话过程中 给对方说了一句话

session(会话)作用域:一次会话内有效

​ 类比:你在打电话就是一次会话 包含着一系列的请求和响应

只要没有完全关闭当前浏览器,在这个浏览器内的所有请求和响应都是属于一次会话。

  1. 获取当前会话的id:String getId();
  2. 设置当前会话作用域的数据:void setAttribute(String name,Object obj);
  3. 获取当前会话作用域的数据:Object getAttribute(String name);

session作用域的应用场景:存储登录的用户信息 存储购物车等信息。

1.4 掌握session和cookie的区别

cookie 小饼干

可以存储某个站点内的一些设置信息,可以实现例如:自动登录 网站内的历史访问 记住用户名 …

**会话级cookie:**默认的cookie会随着session的结束而结束(浏览器自动将此缓存删除)。

**持久级cookie:**可以设置cookie的存活周期。(浏览器可以持久存储该信息)

session:

​ 存储在服务器内

​ 它可以存储任意类型的数据 setAttribute(String name,Object obj);

​ session它会随着会话的结束而销毁

​ session是安全的信息存储

cookie:

​ 存储在本地客户端/浏览器

​ 它只能存储String类型数据 new Cookie(String name,String value);

​ cookie默认是会话级的和session相同,但是可以设置持久级cookie

​ cookie不安全,因为存储在浏览器 谁都可以访问

session的原理:

​ 当浏览器访问服务器时,服务器会对此浏览器生成一个唯一的会话编号,然后通过cookie响应存储到浏览器中。(默认的会话级别)

​ 当浏览器重复服务器时,只要会话没关闭,意味着会话级别的cookie还存在,那么就每次都会在请求头传递一个JSESSIONID信息,服务器接收到此信息之后,会进行查找相应的数据存储空间。

1.5 掌握application对象的使用

记录本网站的浏览次数。

四大作用域:

page作用域:(不使用)本页面内有效。

request作用域:一次请求内数据有效。

session作用域:一次会话内数据有效。

application作用域:全局有效、整个项目周期内数据都有效。

每一个作用域对象都会有两个固定API:

​ void setAttribute(String name,Object obj);

​ Object getAttribute(String name);

[面试题]JSP九大内置对象

request

response

session

application

page

pageContext

out

config

exception

补充:
out是一个对象(JSP的内置对象 内置对象就是不用实例化new xxx,你直接用)
out.print() 或 out.println() 向页面输出内容
out.print() 或 out.println() 是一个java代码 ,不影响页面的换行 ,如果你想让页面内容换行 用<br/>

<%out.print("<h1>课工厂</h1>")%>   在页面中显示是 <h1>课工厂</h1>
// 双引号里面写单引号  不要双引号里面套双引号

jsp是运行在服务器端的 编译

JSP注释 3种
第一种: html的注释 在页面可以看到 jsp注释在页面上看不到 在浏览器右键查看源代码的时候<!---->
第二种: <%-- --%>
第三种:

 					<%
       					  //单行注释   
       					   /*多行注释*/
       					       %>


代码一:
在JSP中输出时间:
    SimpleDateFormat记得导包  import java.text.SimpleDateFormat;
    Date记得导包  import java.util.Date;
    <% 	Date date=new Date();
        SimpleDateFormat formater=new SimpleDateFormat("yyyy-MM-dd");
    			String time = formater.format(date);
     %>
       		 时间为<%=time %>


代码二://用 \表示转义   特殊字符就要加\
    <%String name="黑色\"倔\"犟"; %>
        <%=name %>
        //输出黑色\"倔\"犟


代码三:
    <%int i=9; %>
    	<%=i%>  //JSP中的局部变量
    <%! int j=9; %>
    <%=j %>		//JSP中的全局变量
    

观察全局变量和局部变量的区别
<%int i=9; %>
<%=i++%>  //JSP中的局部变量
<%! int j=9; %>
<%=j++ %>		//JSP中的全局变量
//每次进去页面 每刷新一次,就是一次请求  j变化  i不变化

web程序调试

web程序常见错误:

(1)404 --找不到访问的页面和资源

运行时 url输错  

或将页面放在web-inf下

或外部启动tomcat,没有部署项目

(2)500错误 ----JSP页面代码有误

(3)页面无法显示—没有启动tomcat

猜你喜欢

转载自blog.csdn.net/weixin_44637905/article/details/89857325
今日推荐