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="验证后提交表单" onclick="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="提交" onclick='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对象处理执行过程中引发的异常。
JSP-05- JSP总结的更多相关文章
- JSP以及JSP解析原理
什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写htm ...
- Servlet,jsp,JSP技术 ,JSP编程
一.Servlet 思考 1 浏览器可以直接打开JAVA/class文件吗? 不可以 2浏览器可以打开HTML.JS 文件吗? 可以 3 JAVA程序可以生成HTML文件吗?可以的,用IO流. 4 ...
- JavaWeb学习之什么JSP、JSP是如何工作的、JSP语言(各种指令和九大内置对象)、EL表达式简单使用(5)
1.什么JSP * servlet:java编写的处理动态web的技术 * 特点:Java代码中嵌套html代码 * jsp * 特点:HTMl代码中嵌套java代码 * %tomcat%/conf/ ...
- jsp学习--JSP运行原理,九大隐式对象和JSP常用标签
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- jsp的<%@ include file="jsp/common.jsp" %>报错误Duplicate local variable basePath
将公共引入的文件放到common.jsp中,其他页面引入该jsp即可使用 <%@ page language="java" import="java.util.*& ...
- JSP动作--JSP有三种凝视方式
一.JSP动作 动作是特殊的标记,通过一个动作标记能够实现多行Java代码实现的效果.能够动态插入文件.重用JavaBean组件.导向还有一个页面等. 动作元素和指令元素不同,动作元素是在client ...
- 报错信息 The jsp:param action must not be used outside the jsp:include, jsp:forward, or jsp:params elements 的原因及解决办法
如果你的代码是这样的话就会报错 <jsp:forward page="02.jsp"></jsp:forward> <jsp:param value= ...
- Tip:JSP标签也称之为Jsp Action(JSP动作)元素
JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. ================ &l ...
- 【jsp】jsp中的动作元素
一,动作元素(Action):预定义的java代码.目的在于代码的可重用性. 1,为请求阶段提供信息,允许在页面之间转移控制权. 2,JSP2.0规范定义了标准动作,标准动作是一些标签,影响JSP运 ...
- 复习:JSP基本的语法(JSP凝视 + JSP指令 + JSP脚本元素 + JSP动作元素)
JSP原理: 1. 对于每个请求.jsp容器都会创建一个新的线程来处理它: 2. Servlet容器载入jsp后转换成的servlet(.class文件)是常驻内存的,所以对应速度一般比較 ...
随机推荐
- node中定时器的“先进”用法
var DSQ = setInterval(function(){ console.log('zzq'); },1000); setTimeout(function(){ clearInterval( ...
- HTML5音频,视频播放
1.此方法可支持多种浏览器 <audio controls="controls"> <source src="1.mp3" ></ ...
- NDK编译FreeImage
参考了 以下2篇文章 并作了一小点修改 http://recursify.com/blog/2013/05/25/building-freeimage-for-android http://blog. ...
- 使用sql语句查询日期在一定时间内的数据
使用sql语句查询日期在一周内的数据 select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查询当天日期在一周年 ...
- mysql导入导出
1.导入整个库 进入数据库,source 进去的语句等同于直接连接数据库后数据的语句 >source /var/www/test.sql 或者 sy$ mysql -uroot -p 数据库名( ...
- 链表之求链表倒数第k个节点
题目描述:输入一个单向链表,输出该链表中倒数第k个节点,链表的倒数第0个节点为链表的尾指针. 最普遍的方法是,先统计单链表中结点的个数,然后再找到第(n-k)个结点.注意链表为空,k为0,k为1,k大 ...
- 初涉MySQL
本文要点: MySQL基础 安装MySQL 配置MySQL 使用MYSQL 一.MySQL基础 MySQL 由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一个开源的关系型数据 ...
- Sqoop -- 用于Hadoop与关系数据库间数据导入导出工作的工具
Sqoop是一款开源的工具,主要用于在Hadoop相关存储(HDFS.Hive.HBase)与传统关系数据库(MySql.Oracle等)间进行数据传递工作.Sqoop最早是作为Hadoop的一个第三 ...
- interblock corruption & intrablock corruption
interblock corruption: corruption blocks rather than within the block itself. can only be logical co ...
- ROC曲线及AUC评价指标
很多时候,我们希望对一个二值分类器的性能进行评价,AUC正是这样一种用来度量分类模型好坏的一个标准.现实中样本在不同类别上的不均衡分布(class distribution imbalance pro ...