some tips about jsp

注释:

  <!-- 注释内容-->   HTML注释,会产生一个注释发送到客户端,能在浏览器端用查看源代码方式看到。

  <%-- 注释内容 --%> 隐藏注释,是不会将其内容传到客户端,当然在客户端的浏览器查看源代码时是看不到的。

 

include 命令

  include命令的作用是在JSP页面中包含一个静态文件,同时解析这个文件中的JSP语句。include指令将会在JSP编译时插入一个包含文本或代码文件,这个包含的文本可以是JSP文件,HTML文件或文本文件。

基本语法格式如下:

  <%@ include file="relativeURL" %>

在这个格式中,是以符号<%@ 开始,%>结束的。

  <%@ include page="scripts/login.jsp" %>

  <%@ include page="copyright.html" %>

  <%@ include page="/index.html" %>

Page指令

  Page指令语法

 <% page

   [language="java"]

         [extends="package.class"]

         [import="{package.class|package.*}......"]

         [session="true|false"]

         [buffer="none|8kb|sizekb"]

         [autoFlush="true|false"]

         [isThreadSafe="true|false"]

         [info="text"]

         [errorPage="relativeURL"]

         [contentType="mineType[;charset=characterSet] "|"text/html;charset=GBK"]

         [isErrorPage="true|false"]

%>

 

  language属性

     language="java" 声明脚本语言的种类只能是java

  extends属性

   extends="package.class"声明JSP编译时需要加入的Java Class的全名

  import属性

   import=“{package.class|package.*}”中import语句后是需要导入的Java包的列表

   <%@ page import="java.util.*,java.lang.*" %>

  session属性

  session="true|false"设定客户是否需要HTTPSession,如果为true,那么session是有用的,如果为false,那么就不能使用session

 buffer属性

 buffer="none|8kb|sizekb"中buffer的大小是被out对象用于处理执行后的JSP对客户浏览器的输出,默认值是8kb.

autoFlush属性

 autoFlush="true|false" 设置如果buffer溢出,是否需要强制输出。true:输出正常,false:当buffer溢出,就会导致一个意外错误发生。如果buffer属性设置为None,则不能把autoFlush设置为false

isThreadSafe属性

 isThreadSafe="true|false"设置JSP能否多线程使用,默认true,

errorPage属性

 errorPage="relativeURL"设置处理异常事件JSP文件。

isErrorPage属性

 isErrorPage="true|false" 设置该页是否为出错页面,如果被设置为true,就可以使用Exception对象。

ContentType属性

 设置MIME类型,默认MIME类型是text/html 默认字符集ISO-8859-1

info属性

 一个文本在执行JSP时将会被涿字加入JSP中,可以使用Servlet.getServletInfo()方法取回info属性。

 

<jsp:forward>

   用来定向一个HTML文件,JSP文件或者一个程序员,<jsp:forward>标签从一个JSP文件向另外一个文件并传递一个包含客户请求的request对象。

格式:

 <jsp:forward page={"relativeURL|<%=expression%>"} />

      <jsp:param name="parameterName" value="{parameterValue|<%=expression%>" />

 </jsp:forward>

 page属性,可以用一个表达式或一个字符串来说明将要定向的文件或URL,这个文件可以是JSP程序员,也可以是能够处理request对象的文件。

<jsp:param>属性,向一个动态文件发送一个或多个参数,这个文件一定是动态文件,如果想传递多个参数,可以在一个JSP文件中使用多个<jsp:param>,name制定参数名,vlaue指定参数值。

 

每当遇到<jsp:forward>操作时,就停止执行当前的JSP,转而执行被转发的资源

  <%

      String  target="/login.jsp"

 %>

<jsp:forward page="<%=target%>" />

 

或者

 <jsp:forward page="/login.jsp">

     <jsp:param name="userID" value="helking"/>

     <jsp:param name="password" value="xxxxxx" />

 </jsp:forward > 

 

jsp:forward操作的典型应用就是登陆,如进行权限验证的页面,当验证通过后,就把页面forward到登陆成功的页面,反之就把页面forward到登陆页面

checklogin.jsp

<%@ page contentType="text/html;charset=gb2312" %>

<html>

<body>

<%--进行登录检查--%>

<%

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

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

//if验证通过,forward-->sucess.jsp

//else forward-->login.jsp

if(name.equals("helking"))

{

%>

<jsp:forward page="sucess.jsp">

<jsp:param name="user" value="<%=name%>" />

</jsp:forward>

<%

}//if

else{

%>

<jsp:forward page="login.jsp" >

<jsp:param name="user" value="<%=name%>" />

</jsp:forward>

<%}%>

</body>

</html>

 

sucess.jsp

<%@ page contentType="text/html;charset=gb2312" %>

登录成功

<br>

欢迎你,

<%=request.getParameter("name")%>

 

 

 

<jsp:include>

   在请求时间内在现成的JSP页面里包含静态或者动态资源.

<jsp:include page="included.jsp" flush="true"/>

   <jsp:param name="companyName" value="huayuan" />

</jsp:include>

 

这里flush必须使用true,不能使用false,默认是false

 

例:

 

jsp_include.jsp

   <%@ page contentType="text/html;charset=gb2312" language="java" %>

   <html>

   <body>

   <%@ include file="static.html" %>

   <%--只是把文件包含进来 --%>

   <a href="two.jsp">goto two--></a><br>

   this example show include works

   <jsp:include page="two.jsp" flush="true">

   <jsp:param name="a1" value="<%=request.getParameter("name")%>"/>

   <jsp:param name="a2" value="<%=request.getParameter("password")%>"/>

   </jsp:include>

   </body>

   </html>

 

two.jsp

<%@ page contentType="text/html;charset=gb2312" language="java" %>

<br>

this is a1=<%=request.getParameter("a1")%>

<br>

this is a2=<%=request.getParameter("a2")%>

<br>

<%

  out.println("Hello from two.jsp");

%>

  

 

 

  

乱码:

response.setHeader("Content-Language","es");来设置HTML显式时要使用的语言.

 

<%@ page contentType="text/html;charset=iso-8859-1" %>

<%

response.setHeader("Content-Language","es");

out.println("<html><head><title> En Espa&ntilde;ol</title></head>");

out.println("<body>");

out.println(<h3>En espa&ntilde;ol:</h3>");

out.println("&iexcl;Hola Mundo!");

out.println("</body></html>");

%>

 

<%@ page contentType="text/html;charset=gb2312"%>

<html>

<head>

<title>test</title>

<meta http-equiv="Content-Type" content="text/html;charset=gb2312">

</head>

<body>

指定了编码方式,不会出现乱码:<br>

<%

out.println("这里由out.println方法打印,不会出现乱码");

%>

</body>

</html>

 

使用page指定手工指定页面的编码方式为"gb2312",这样对于不同的应用服务器或jdk,都不会出现乱麻问题.

 

 

当表单中输入一些中文,提交并显式的时候,出现乱码

<%@ page contentType="text/html;charset=gb2312"%>

<%

  request.setCharacterEncoding("gb2312");

  out.println(request.getParameter("name");

%>

 

可以看出,通过使用request.setCharacterEncoding("gb2312")对请求进行了统一的编码,就实现了对输入中文的正常显式.

 

 

 

 

 

  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值