JSP-05- JSP总结
1 客户端请求新页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function fun(){
var uid = document.getElementById("uid").value;
if(uid == ""){
alert("请输入数据");
return false;
}else{
return true;
}
}
</script>
</head>
<body>
<!-- 链接到page2 -->
<a href="page2.jsp">链接到page2</a><br>
<!-- 链接到page2,弹出新窗口 -->
<a href="page2.jsp" target="_blank">链接到page2</a><br>
<!-- 相对路径链接到page2 -->
<a href="./page2.jsp">链接到page2</a><br>
<a href="../demo1/page2.jsp">链接到page2</a><br>
<!-- 绝对路径链接到page2 -->
<a href="http://localhost:8080/web1/demo1/page2.jsp">链接到page2</a><br>
<a href="<%=request.getContextPath() %>/demo1/page2.jsp">链接到page2</a><br>
<!-- 链接到page2,并传参 -->
<a href="page2.jsp?uid=admin">链接到page2</a><br>
<!-- 使用js链接到page2 -->
<a href='javascript:window.location="page2.jsp";'>链接到page2</a><br>
<!-- 使用js链接到page2,并传参 -->
<a href='javascript:window.location="page2.jsp?uid=admin";'>链接到page2</a><br>
<!-- 使用js链接到page2,弹出新窗口,并传参 -->
<a href='javascript:window.open("page2.jsp?uid=admin");'>链接到page2</a><br>
<!-- submit提交表单 -->
<form action="page2.jsp" method="post">
<input type="text" name="uid">
<input type="submit" value="提交">
</form>
<!-- 验证后提交表单 -->
<form action="page2.jsp" method="post">
<input type="text" name="uid" id="uid">
<input type="submit" value="验证后提交表单" οnclick="return fun()">
</form>
<!-- url方式提交数据 -->
<form action="page2.jsp?uid=admin" method="post">
<input type="text" name="uid">
<input type="submit" value="提交">
</form>
<!-- hidden方式提交数据 -->
<form action="page2.jsp" method="post">
<input type="hidden" name="uid2" id="uid2" value="admin">
<input type="submit" value="提交">
<script type="text/javascript">
document.getElementById("uid2").value = "admin22222";
</script>
</form>
<!-- button+js提交表单 -->
<form id="form1" action="page2.jsp" method="post">
<input type="text" name="uid">
<input type="button" value="提交" οnclick='document.getElementById("form1").submit();'>
</form>
<!-- <a>+js提交表单 -->
<form id="form2" action="page2.jsp" method="post">
<input type="text" name="uid">
<a href='javascript:document.getElementById("form2").submit();'>提交表单</a>
</form>
</body>
</html>
5.2 中文乱码解决方法
详见文档
- 设置工作空间的编码集
- 设置JSP脚本的编码格式
- 对请求的参数进行封装重构编码 (此方法适用于请求和响应)
String xing = request.getParameter("xing");
xing = new String(xing.getBytes("ISO-8859-1"),"utf-8");
这种方法很费事,当变量极少时可以考虑用这种方式。
- 设置服务器的编码
添加 URlEncoding=”utf-8’ (此方法对get提交的方式有效)
- 对post方式提交的数据
Request.setCharacterEncoding(“utf-8”); //获取参数前
- Cookie默认不支持中文
<%
Cookie c = new Cookie("name","张曼");
response.addCookie(c);
%> 此时页面可能会出现500错误,但不决对。
需要在存放和获取的时候进行编码:
<%
Cookie c = new Cookie("name",URLEncoder.encode("张曼"));
response.addCookie(c);
%>
<%
String name = "";
Cookie[] cook = request.getCookies();
if(cook != null)
{
for(Cookie c : cook){
if(c.getName().equals("name")){
name = URLDecoder.decode(c.getValue());
}
}
}
out.println("<br/>cookie的值为: " + name);
%>
5.3 过滤器处理乱码
详见下文的过滤器
5.4 隐式对象
是Web容器加载的一组类的实例,不想一般的java对象那样用 new 去获取实例,而是直接在JSP 页面使用的对象。
Ø 输入和输出对象
Request
表示客户端的请求,包含了所有的请求信息。
String getParameter(String name) : 根据请求页面表单组件名称获取请求页面提交的数据
String[] getparameterValues: 获取页面请求中一个表单组建对应多个值时的用户的请求数据。(例如复选框)
getRemoteAddr() 返回发送请求的主机的网络地址
getRequestURL() 请求的URL
Response
处理JSP生成的响应,然后将响应结果发送给客户端。
void setContentType(String name): 设置作为响应生成的内容的类型和字符编码
void sendRedirect(String): 请求的另一个URL
out
表示信息的输出
Print() println() write()
Ø 作用域通信对象
Session
表示用户的会话状况,用此机制可以轻易识别每一个用户,能保存和跟踪用户的会话状态。 (例如,购物车)。
Void SetAttribute(String name,Object value);
Void getAttribute(String name);
Application
作用的范围比session更大,不仅仅是在同一个窗口,而是作用在整个应用程序,所有客户端窗口都可以共享该对象,从服务器启动开始就存在,直到服务器关闭为止。他是 ServletContext的对象(全局)
方法同 session
pageContext
使用户可以访问页面作用域中定义的所有隐式对象。
方法同 session
Ø Servlet对象
page
提供对网页上定义的所有对象的访问。Page对象表示页面本身,它是 java.lang.Object类的一个实例。 (很少用到)
<%= ((javax.servlet.jsp.HttpJspPage)page).getServletInfo() %>
config
存储servlet的一些初始化信息(很少用到)
Ø 错误对象
只提供了一个 exception的错误对象,利用exception对象处理执行过程中引发的异常。
转载于:https://www.cnblogs.com/Theladyflower/p/4492610.html
JSP-05- JSP总结相关推荐
- 什么是jsp,对于jsp的详细理解
博主的每篇博文的浪漫主义 <欧若拉> 假如爱是一道光 这是一篇学习笔记 ,来自 http://www.monkey1024.com/javaweb/941 叫 小猴子monkey1024的 ...
- 当前路径_[JSP] 07 JSP 路径问题
首先先明确一下下列URL的 假设一个URL是这样的losthost:8080/myservlet/path 服务器根路径:losthost:8080/ 项目根路径:losthost:8080/myse ...
- JSP动作--JSP有三种凝视方式
一.JSP动作 动作是特殊的标记,通过一个动作标记能够实现多行Java代码实现的效果.能够动态插入文件.重用JavaBean组件.导向还有一个页面等. 动作元素和指令元素不同,动作元素是在client ...
- Js与Jsp、Jsp之间的中文乱码转换
一.js与jsp: 1.转码:js处理 <script type="text/javascript"> var ch = "中文"; functio ...
- org.apache.jasper.JasperException: /jsp/menu.jsp (line: 8, column: 1) Page directive
org.apache.jasper.JasperException: /jsp/menu.jsp (line: 8, column: 1) Page directive jsp页面编码设置错误,检查设 ...
- 可用等式为:html+java=jsp表示jsp[8]._java jsp
### jsp@3脚本元素 .JSP脚本元素用来插入Java代码,这些Java代码将出现在由当前JSP页面生成的Servlet中. 脚本元素有三种格式: 声明格式<%! declaration; ...
- 【JSP】JSP的运行原理
初次访问JSP页面 JSP同Servlet一样,都运行在Servlet容器中.当用户第一次访问JSP页面时,JSP页面的执行过程可分为五个步骤,各步骤含义如下: 客户向服务器发送JSP页面请求(req ...
- jsp中php代码格式化,JSP 语法 - [ JSP参考手册 ] - 在线原生手册 - php中文网
JSP 语法 本小节将会简单地介绍一下JSP开发中的基础语法. 脚本程序 脚本程序可以包含任意量的Java语句.变量.方法或表达式,只要它们在脚本语言中是有效的. 脚本程序的语法格式: 或者,您也可以 ...
- 【JSP】JSP基础学习记录(二)—— JSP的7个动作指令
2.JSP的7个动作指令: 动作指令与编译指令不同,编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的动作.编译指令在将JSP编译成Servlet时起作用:而处理指令通常可替换成JSP ...
- 什么是JSP,JSP的运行原理是什么?
在动态Web项目的开发中,经常需要动态生成HTML.内容(如系统中的当前在线人数需要动态生成).如果使用Servlet实现HTML页面数据的统计,则需要使用大量的输出语句.同时,如果静态内容和动态内容 ...
最新文章
- shell中数组基础语法
- Extjs4.2——Panel
- AngularJS基础01 从HelloWorld说起
- Supervisor使用教程
- Natasha 4.0 探索之路系列(一) 概况
- c语言作业重庆科技学院,C语言程序设计学生上机报告-NO3.doc
- 【T-SQL系列】新的排序函数
- 【Linux】VMware虚拟机中如何配置静态IP
- 华为 HR 内网 5000 字实名控诉:研发兄弟一个月加班 160 小时却被说不努力...
- uni-app 快速入门 从零开始实现新闻资讯类跨端应用(更新中)
- android开发--不安装支付宝客户端调H5页面问题
- 探寻埋藏在心底的梦想,社科院与杜兰大学金融管理硕士项目伴你同行
- stellarium-0.19.3.1-win64.exe下载
- 读书笔记-情感化设计
- 2019年十大让人欲罢不能的消费潮流 | 财见年终观察
- 没那么简单,没那么困难
- 02—JAVA(基础)—(数据类型转换,运算符,方法)
- 开发日志_Jan.6.2017
- CES Asia:足不出户也能享受天文奇观
- 软考:计算机技术与软件专业技术资格(水平)考试
热门文章
- ElasticSearch第一天
- JAVA16版本.JDK16关于TCP和UDP的优化
- spring mvc hello
- 远程桌面提示:身份验证错误 要求的函数不受支持
- 遍历HashMap的最佳方法
- ElasticSearch对地理数据查询(二)
- linux每日命令(30):Linux 用户及用户组相关文件、命令详解
- 最新RemObjects,您值得拥有
- [bzoj2242][SDOI2011]计算器
- 1069: [SCOI2007]最大土地面积|旋转卡壳