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>

JSP计数器的更多相关文章

  1. JSP内置对象(下)

    JSP中共有9大内置对象: out对象 requset对象 response对象 session对象 pageContext对象 application对象 config对象 page对象 excep ...

  2. java web 学习 --第七天(Java三级考试)

    第六天的学习内容如下:http://www.cnblogs.com/tobecrazy/p/3462244.html application application对象的方法与应用: ①   setA ...

  3. 【JSP实例】指定用户计数器

    不同的用户访问次数是不一样的,因此对于每一个用户的访问次数都要进行统计,以适应需要. 用户登陆的Login.html的源文件: <html> <head> <title& ...

  4. 2017.11.4 JavaWeb-----基于JavaBean+JSP求任意两数代数和(改进的在JSP页面中无JSP脚本代码的)+网页计数器JavaBean的设计与使用

    修改后的JSP中不含有JSP脚本代码这使得JSP程序的清晰性.简单 1.设计JavaBean 的Add.java 类 package beans; public class Add { private ...

  5. JSP点击计数器

    以下内容引用自http://wiki.jikexueyuan.com/project/jsp/hits-counter.html: 一个点击计数器能得知关于网站某个特定页面的访问量.假设人们第一次登陆 ...

  6. JSP简单练习-一个简单的计数器

    在JSP中,在"<%"和"%>"之间书写的程序代码成为java程序片. 一个JSP页面中能够有多个java程序片. 要注意的是,在Java程序片中声 ...

  7. JSP简单练习-站点计数器

    <%@ page contentType="text/html;charset=gb2312" %> <%@ page import="javax.se ...

  8. Jsp的九大对象,七大动作,三大指令

    jsp九大内置对象:1>out 向客户端输出数据,字节流.如out.print(" dgaweyr"); 2>request 接收客户端的http请求.String g ...

  9. 用application实现一个网页的浏览计数器

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

随机推荐

  1. ACM_输出格式

    输出格式 Time Limit: 2000/1000ms (Java/Others) Problem Description: 某水比参加了XX杯,但是他太水,所以三等都木有,所以他决定出一道水题水一 ...

  2. 409 Longest Palindrome 最长回文串

    给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串.在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串.注意:假设字符串的长度不会超过 ...

  3. WCF学习笔记(2)-WCF的通讯过程

    一.WCF中的ABC 场景:公司让你送一份合同文件,送文件的过程你可以选择的交通方式有打的,地铁或公交. 到了对方公司后,你要找到某负责人,并且要一份收到合同文件的回执和相应文件 要完成这项工作任务主 ...

  4. Modbus通讯错误检测方法

    标准的Modbus串行网络采用两种错误检测方法.奇偶校验对每个字符都可用,帧检测(LRC和CRC)应用于整个消息.它们都是在消息发送前由主设备产生的,从设备在接收过程中检测每个字符和整个消息帧. 用户 ...

  5. Framework7首页隐藏navbar

    f7首页隐藏navbar其他页面显示navbar 帮别人解决问题,自己也记录一下, 首页.navbar加.navbar-hidden, 首页.page加.no-navbar, 如果首页有.navbar ...

  6. python自动化--语言基础线程、生产者消费者示例

    进程与线程的区别:进程不共享空间,线程共享地址空间 线程共享空间优缺点:优点:多线程给用户的体验好些,打开时占用的内存比进程少缺点:共享地址空间会相互干扰,甚至有影响 import threading ...

  7. Eclipse+JUnit+Selenium配置

    运行环境:Windows XP.Firefox.Firefox需要安装在标准路径下"C:\Program Files\Mozilla Firefox\firefox.exe",否则 ...

  8. 01JavaScript使用

    JavaScript使用 1.内容写入 HTML <P onmouseover="alert('欢迎您学习JavaScript!')">鼠标移过来</P> ...

  9. kvm--virsh命令行下管理虚拟机

    virsh 既有命令行模式,也有交互模式,在命令行直接输入 virsh 就进入交互模式, virsh 后面跟命令参数,则是命令行模式: (1)基础操作 --- 命令行下管理虚拟机 virsh list ...

  10. vue的自定义指令控制菜单权限

    用户登录后,选择子节点,节点中含有多个菜单,可以根据后台返回的权限数据进行权限控制 在vue上挂载自定义指令方法,根据后台返回权限移除相应节点 import Cookies from "js ...