首页 > 编程语言 >2.Javaweb-JSP实现数据传递和保存

2.Javaweb-JSP实现数据传递和保存

时间:2024-09-25 08:51:27浏览次数:16  
标签:Javaweb String 对象 request 传递 application session JSP name

Javaweb-JSP实现数据传递和保存

文章目录

一、get与post区别

比较项getpost
缓存可以不可以
收藏为书签可以不可以
数据长度有限制(URL 的最大长度是 2048 个字符)无限制
编码类型application/x-www-form-urlencodedapplication/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
对数据类型的限制只允许 ASCII 字符没有限制。也允许二进制数据
安全性不安全安全
可见性数据在 URL 中对所有人都是可见的数据不会显示在 URL 中

查询一般是get,增删改一般是post

二、equest对象常用方法

方法名称说明
String getParameter (String name)根据表单组件名称获取提交数据
String[ ] getParameterValues (String name)获取表单组件对应多个值时的请求数据
void setCharacterEncoding (String charset )指定每个请求的编码
RequestDispatcher getRequestDispatcher (String path)返回一个 RequestDispatcher 对象,该对象的 forward( ) 方法用于转发请求

三、内置对象–out对象

实现数据的输出显示(没什么大用)

out.println("输出......")
JSP已经准备好的,可以直接使用的对象

请求对象:request

输出对象:out

响应对象:response

应用程序对象:application

会话对象:session

页面上下文对象:pageContext

页面对象:page

配置对象:config

异常对象:exception

内置对象–request对象

请求对象(主要用途,接收用户发过来的数据)

 <input type="text" name="userName" />  
 
 //name属性名userName使用 发送与接收要对应   单个参数
 String userName = request.getParameter("userName");
 
 // 如果遇到多个name相同的情况(checkbox)
  String userLoves = request.getParameterValues("userLoves");
  

四、中文乱码

JSP中默认使用的字符编码方式:iso-8859-1,不支持中文

常见的支持中文的编码方式

编码方式收录的字符
gb2312常用简体汉字
gbk简体和繁体汉字
utf -8所有国家需要的字符
解决中文乱码

设置请求和响应的编码方式

request.setCharacterEncoding(“utf-8”);

response.setCharacterEncoding(“utf-8”);

<%@ page language=“java” contentType=“text/html; charset=utf-8”%>

//post请求使用
request.setCharacterEncoding("utf-8"); //请求乱码
response.setCharacterEncoding("utf-8");//响应乱码

//get请求使用
new String(变量.getBytes("iso-8859-1"), "utf-8" ); 
或
配置tomcat\conf\server.xml文件Connector 标签中
URIEncoding="UTF-8"
useBodyEncodingForURI="true"

get请求出现乱码

​ 治标的方法:new String( s.getBytes(“iso-8859-1”), “utf-8” );

​ 治本的方法:配置tomcat\conf\server.xml文件

​ URIEncoding=“UTF-8”

​ useBodyEncodingForURI=“true”

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

参数传递
request.getAttribute()||setAttribute()
注意:
	必须配合转发
	getAttribute()返回object类型
在请求中保存属性

public void setAttribute(String 属性名,Object 属性值) #引用类型

在请求中获取属性

public Object getAttribute(String name)

#Object 属性值 ,String name属性名

注意:

在使用属性值的时候要做非空判断,否则会出现空指针异常

它的返回值类型是Object类型,需要做数据类型的转换

五、转发重定向

 //页面A中保存属性(然后跳转页面B)
    request.setAttribute("msg", "信息");
    request.getRequestDispatcher(B页面路径).forward(request, response);//跳转B

    
    
    //页面B中获取属性   getAttribute获取为Object类型,需要类型转换
    String mess=(String)request.getAttribute("mess");

转发与重定向
//转发
 request.getRequestDispatcher(B页面路径).forward(request, response);
 
 //重定向
 response.sendRedirect("url")

区别:
1.转发url没有发生变化,而重定向会
2.转发不会重新发送请求,重定向会
3.转发可以携带参数,而重定向不可以
4.转发只可跳转当前项目路径,而重定向可以跳转任意url

六、九大内置对象

1、request对象

request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。

2、response对象

**response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。**response对象也具有作用域,它只在JSP页面内有效。

3、session对象

**session 对象是由服务器自动创建的与用户请求相关的对象。**服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。

4、application对象

**application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。**与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。

5、out 对象

**out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。**在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。

6、pageContext 对象

**pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。**pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。

7、config 对象

**config 对象的主要作用是取得服务器的配置信息。**通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。

8、page 对象

page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。

9、exception 对象

**exception 对象的作用是显示异常信息,只有在包含 isErrorPage=“true” 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。**excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。

四大作用域

pageContext对象

如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。 从把变量放到pageContext开始,到jsp页面结束,你都可以使用这个变量

 //存入值
pageContext.setAttribute("name","张三");
 //获取值
String name = pageContext.getAttribute("name").toString();



servlet获取pageContext:
PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(this, request, response, null, true, 8192, true);

request对象

如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过 程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。

 //存入值
request.setAttribute("name","张三");
 //获取值
String name = request.getAttribute("name").toString();

session对象

如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量.

 //存入值
session.setAttribute("name","张三");
//输出sessionID
 out.print(session.getId());
 //获取值
String name = session.getAttribute("name").toString();

 //清空session中name键中的值
 session.removeAttribute("name");
//设置60秒非session活动时间后清除session中的值
session.setMaxInactiveInterval(60);
//设置所有session失效
session.invalidate();


servlet中获取session:
HttpSession session=request.getSession();//获取session对象

application对象

如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。整个应用是指从应用启动,到应用结束。我们没有说“从服务器启动,到服务器关闭”是因为一个服务器可能部署多个应用,当然你关闭了服务器,就会把上面所有的应用都关闭了。application作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用。与上述三个不同的是,application里的变量可以被所有用户共用。如果用户甲的操作修改了application中的变量,用户乙访问时得到的是修改后的值。这在其他scope中都是不会发生的,page, request, session都是完全隔离的,无论如何修改都不会影响其他

 //存入值
application.setAttribute("name","张三");
 //获取值
String name = application.getAttribute("name").toString();


servlet中获取:
ServletContext application = this.getServletContext();// 获取application

修改后的值。这在其他scope中都是不会发生的,page, request, session都是完全隔离的,无论如何修改都不会影响其他

 //存入值
application.setAttribute("name","张三");
 //获取值
String name = application.getAttribute("name").toString();


servlet中获取:
ServletContext application = this.getServletContext();// 获取application

标签:Javaweb,String,对象,request,传递,application,session,JSP,name
From: https://blog.csdn.net/QAZ412803/article/details/142513859

相关文章

  • 1.Javaweb-搭建Web环境、初识JSP
    Javaweb-搭建Web环境、初识JSP文章目录Javaweb-搭建Web环境、初识JSP一、pc端程序架构分类:二、web服务器Tomcat三、JSP页面四、脚本语言五、Web程序常见错误六、错误替换JSP九大内置对象(包括JSP四大作用域)JSP四大作用域一、pc端程序架构分类:B/S:浏览器—服务......
  • 值传递、引用传递、指针传递【函数的参数传递】详解
    形参变量:形参变量是功能函数里的变量,只有在被调用的时候才分配内存单元,调用结束后立即释放。所以形参只在函数内部有效。实参变量:实参可以是常量,变量,表达式,函数等等,但无论是何类型,在进行函数调用是,他们必须有确定的值,以便把这些值拷贝给形参。值传递、引用传递和指针传递......
  • javaweb学习2 -2024/9/24
    今天学习了数据库中约束的概念数据库-约束约束的概念约束是作用于表中列上的规则,用于限制加入表的数据约束的存在保证了数据库中数据的正确性,有效性和完整性约束的分类#约束createtableemp2(#自动增长auto_increment当列时数据类型并且唯一约束id......
  • Day5 JavaWeb知识了解以及每日一题:力扣125.验证回文串
    Day5JavaWeb知识了解以及每日一题:力扣125.验证回文串2024年9月24日20:06:45JavaWeb基础知识TomcatApacheTomcat是一个开源的Servlet容器和Web服务器,它是JavaEE(EnterpriseEdition)的一部分,专门用于运行JavaServlet和JavaServerPages(JSP)。Tomcat的主要功能是接收HTTP......
  • 基于jsp毽球协会官方网站的计算机毕设源码+论文
    摘 要当今,计算机的发展给人们带来了诸多便利,通过科学的管理方法和现代化的管理工具——计算机及其网络应用系统,能够规范高效的实现对很多事物的管理。为了对毽球学会进行宣传,靠传统的手工方法很难适应当今的发展需求。因此,开发一款毽球协会的网站可以极大的减轻宣传人员的工作量,......
  • nodejs-get和post接收前端传递过来的参数
    一、接收GET请求参数在Node.js中,处理GET请求时,参数通常会附加在URL的查询字符串中。你可以使用url模块或express框架来解析这些参数。1、使用url模块consthttp=require('http');consturl=require('url');http.createServer((req,res)=>{constqueryObject=url.......
  • DC00013基于jsp servlet javabeen鲜花销售管理系统网上花店含配套报告
    1、项目功能演示DC00013基于jsp+servlet+javabeen鲜花销售管理系统网上花店网站鲜花销售网上花店管理系统2、项目功能描述 基于jsp+servlet+javabeen鲜花销售管理系统分为用户和系统管理员两个角色。2.1用户功能1、系统登录、系统注册2、主页、产品信息、联系我们3......
  • 基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)
    ......
  • 什么是事件传递优先级?
    在JAINSLEE中,事件传递优先级(EventDeliveryPriority)决定了多个事件到达时,SBB实体应该以什么顺序来处理这些事件。SLEE是一个基于事件驱动的架构,多个事件可能会同时触发,因此需要一种机制来控制事件的处理顺序,确保关键事件优先被处理。事件传递优先级可以通过编程配置......
  • jsp蛋糕甜品商城系统72lo6
    jsp蛋糕甜品商城系统72lo6本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能用户,商品分类,商品信息开题报告内容一、项目背景与意义随着电子商务的蓬勃发展,线上购物已成为人们日常生活中不可或缺的......