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   中文乱码解决方法

详见文档

  1. 设置工作空间的编码集

  1. 设置JSP脚本的编码格式

  1. 对请求的参数进行封装重构编码 (此方法适用于请求和响应)

String xing = request.getParameter("xing");

xing = new String(xing.getBytes("ISO-8859-1"),"utf-8");

这种方法很费事,当变量极少时可以考虑用这种方式。

  1. 设置服务器的编码

添加 URlEncoding=”utf-8’  (此方法对get提交的方式有效)

  1. 对post方式提交的数据

Request.setCharacterEncoding(“utf-8”);   //获取参数前

  1. 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总结的更多相关文章

  1. JSP以及JSP解析原理

    什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写htm ...

  2. Servlet,jsp,JSP技术 ,JSP编程

     一.Servlet 思考 1 浏览器可以直接打开JAVA/class文件吗? 不可以 2浏览器可以打开HTML.JS 文件吗? 可以 3 JAVA程序可以生成HTML文件吗?可以的,用IO流. 4 ...

  3. JavaWeb学习之什么JSP、JSP是如何工作的、JSP语言(各种指令和九大内置对象)、EL表达式简单使用(5)

    1.什么JSP * servlet:java编写的处理动态web的技术 * 特点:Java代码中嵌套html代码 * jsp * 特点:HTMl代码中嵌套java代码 * %tomcat%/conf/ ...

  4. jsp学习--JSP运行原理,九大隐式对象和JSP常用标签

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  5. jsp的<%@ include file="jsp/common.jsp" %>报错误Duplicate local variable basePath

    将公共引入的文件放到common.jsp中,其他页面引入该jsp即可使用 <%@ page language="java" import="java.util.*& ...

  6. JSP动作--JSP有三种凝视方式

    一.JSP动作 动作是特殊的标记,通过一个动作标记能够实现多行Java代码实现的效果.能够动态插入文件.重用JavaBean组件.导向还有一个页面等. 动作元素和指令元素不同,动作元素是在client ...

  7. 报错信息 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= ...

  8. Tip:JSP标签也称之为Jsp Action(JSP动作)元素

    JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. ================ &l ...

  9. 【jsp】jsp中的动作元素

    一,动作元素(Action):预定义的java代码.目的在于代码的可重用性. 1,为请求阶段提供信息,允许在页面之间转移控制权.  2,JSP2.0规范定义了标准动作,标准动作是一些标签,影响JSP运 ...

  10. 复习:JSP基本的语法(JSP凝视 + JSP指令 + JSP脚本元素 + JSP动作元素)

    JSP原理: 1.    对于每个请求.jsp容器都会创建一个新的线程来处理它: 2.    Servlet容器载入jsp后转换成的servlet(.class文件)是常驻内存的,所以对应速度一般比較 ...

随机推荐

  1. 集合类(Objective-C & Swift)

    内容提要: 本文前两部分讲了Cocoa的集合类和Swift的集合类,其中Cocoa提供的集合类包括NSArray.NSMutableArray.NSDictionary.NSMutableDictio ...

  2. 如何方便的控制css3动画开始时间点与持续时间

    一般我们在控制css3 animate动画时可以通过简写以减少代码量,只要在需要动画的元素上追加一下类名就可以了,如下例子 /*淡入并向上移动一点位置出现*/ .fadeInUp{ -webkit-a ...

  3. python装饰器方法

    前几天向几位新同事介绍项目,被问起了@login_required的实现,我说这是django框架提供的装饰器方法,验证用户是否登录,只要这样用就行了,因为自己不熟,并没有做过多解释. 今天查看dja ...

  4. ArcGIS API for JavaScript开发环境搭建及第一个实例demo

    原文:ArcGIS API for JavaScript开发环境搭建及第一个实例demo ESRI公司截止到目前已经发布了最新的ArcGIS Server for JavaScript API v3. ...

  5. imx6dl i2c4 support

    imx6dl i2c4 support 最近的项目用到了imx6dl的i2c4,其实完全可以用gpio-i2c的方法来实现.既然imx6的datasheet中提到有4个i2c,那么一定可以生成i2c的 ...

  6. qt QString 与 int,char的转换

    每次QString转换int或者char的时候都要查资料,记录一下,方便下次查看. 参考: http://blog.csdn.net/ei__nino/article/details/7297791 ...

  7. Opencv + vs2012环境配置

    首先获得最新的Opencv 2.4.10源码:opencv源码下载 一.Opencv环境变量配置 1.将源码安装到制定目录: 2.为Opencv 添加环境变量:计算机-->属性 点击高级系统设置 ...

  8. 获取dom元素的宽度和高度

    一.获取css的大小 1.第一种通过内联样式 var box = document.getElementById('box'); var w = box.style.width; var h = bo ...

  9. 商业智能BI和ERP的融合之路

    企业在发展过程中为了更好的跟上同行业的步伐,甚至是为了在众多企业中脱颖而出,他们会主动寻求全面的企业解决方案.但是由于行业的快速发展,需求的不断增长,市面上的智能软件层出不穷,这也给了企业选择的困难. ...

  10. SQL Server 2008 Express 安装或卸载时提示“重启计算机失败"的解决办法

    安装或卸载SQL Server 遇到错误提示:以前的某个程序安装已在安装计算机上创建挂起的文件操作.运行安装程序之前必须重新启动计算机.如下图: 解决办法: 1.在开始->运行中输入regedi ...