JSP计数器

简介: 1.JSP弥补了servlet页面显示的不足;jsp运行时候需要转化为servlet,本质上就是servlet;tomcat下的work目录下有jsp的servlet和对应的class文件;下次再调用同一个jsp的话速度就快多了。

1.JSP弥补了servlet页面显示的不足;jsp运行时候需要转化为servlet,本质上就是servlet;tomcat下的work目录下有jsp的servlet和对应的class文件;下次再调用同一个jsp的话速度就快多了。
2.查看jsp对应的servlet文件可知道jsp集成HttpJspBase类,向上实现HttpJspPage接口,继续JspPage,继续servlet接口。
3.<!-- -->html注释,只注释html,虽然对java也有效,不过在源代码里会有体现的,影响安全性,换成<%-- --%>注释java安全;<%--  --%>JSp多行注释
4.指令(directive);page,include。taglib;
<%@ page  language pageEncoding contentType(输出的类型,所以可以两种编码)="text/html;charset=utf-8" import  session="true"(设置会话是否可用) isErrorPage="true" errPage="/error.jsp"(当前页面错误的话转到该页面)%>
<%@ include file(引入版权信息)%>,若是动作指令则<jsp:include page="" />
看看生成的servlet源文件可发现,include指令只是吧文件完全包含进来了,而后者是采用了类库的那些引入机制引入的。
也可以getRequestDispatcher.forward.
例子尾部

 
<br>
<a href="http://www.cnblogs.com/hxsyl/"> www.v512.com</a>
</body>
</html>
 

同样头部信息也只需要html的上半部分,同时,jsp页面只需要写html主体。
5.声明(declarartion):<%! %>,在这里面生命的变量对整个jsp页面有效;在<% %>生命的只对方法有效。
6.表达式;<%= %>
7.简单验证
 
onSubmit="return validate(this)"
function validate(myform){
        if(myform.username.value.length == 0){
            alert("请填写用户名!");
            myform.username.focus();
             return false;
         }
         if(myform.password.value.length == 0){
             alert("请填写密码!");
            myform.password.focus();
             return false;
         }
        return true;
    }
     

8.form表单里action="<%=request.getContextPath()%>/loginHandler.jsp"
<%=request.getContextPath()%>是解决相对路径的问题,可返回站点的根路径。

<a href="<%=request.getContextPath()%>/XXX.jsp"> //这样获得的是绝对路径
<a href="XXX.jsp"> //这样获得的是相对路径
<a href="<%=request.getContextPath()%>/XXXX.jsp"> 能够更有效的防治连接的失效
有时候也可以在head里设置html:base
如果想得到工程文件的实际物理路径,可通过:<%=request.getRealPath("/")%>,这样页面就会输出:d:/web
现在request.getRealPath("") 这个方法已经不推荐使用了
可以使用request.getSession().getServletContext().getRealPath() 得到工程文件的实际物理路径,也就是绝对地址
9.计数器需要持久化,通过图片显示

 
public String transform(long count){
    String countNumber=count+"";
    String newNumber="";
    for(int i=0;i<countNumber.length();i++){
        newNumber=newNumber+"<img src=\"images\\"+countNumber.charAt(i)+".gif\">";
    }
    return newNumber;
}
long count=CountFileHandler.readFile(request.getRealPath("/")+"count.txt");
if(session.getAttribute("visited")==null){
    session.setAttribute("visited","y");
    //设置一个秒数这个秒数表示客户端在不发出请求时session被Servlet引擎维持的最长时间
    //让多长时间内刷新页面计数器不增加
    session.setMaxInactiveInterval(60*60*24);
    count=count+1;
    CountFileHandler.writeFile("/count.txt",count);
}
 

10.定制错误页面,除了制定isErrorPage或者errorPage外还可以定制,404,505.
配置web.xml

 
<error-page>
    <error-code>404</error-code>
    <location>/error404.jsp</location>
</error-page>
目录
相关文章
|
6月前
|
Java
16JavaWeb基础 - JSP的三大指令
16JavaWeb基础 - JSP的三大指令
50 0
|
8月前
|
Java 程序员 容器
jsp与servlet的区别以及jsp的四个作用域
jsp与servlet的区别以及jsp的四个作用域
54 0
|
11月前
|
XML 缓存 Java
jsp指令
jsp指令
51 0
|
11月前
|
Java
jsp刷新
jsp刷新
48 0
|
JavaScript Java
jsp与jsp页面传值数值。
需求: 从A.jsp 传值到B.jsp。
60 0
|
Java 容器
JSP中四种范围对象
JSP中四种范围对象
|
Java 应用服务中间件
JSP访问原理
JSP访问原理介绍
JSP访问原理
|
XML 缓存 安全
21.jsp指令
21.jsp指令
57 0
|
搜索推荐 Java
9.JSP运行原理与JSP页面的基本结构
9.JSP运行原理与JSP页面的基本结构
93 0
9.JSP运行原理与JSP页面的基本结构
|
Java 数据安全/隐私保护
在JSP页面中调用另一个JSP页面中的变量
在jsp学习中,经常需要在一个jsp页面中调用另一个jsp页面中的变量,下面就这几天的学习,总结一下。 jsp页面之间的变量调用有多种方法: