容器拿到jsp,会把它转换为一个servlet类源文件(.java),然后再把这个源文件编译为java servlet类。也就是说,JSP本质上就是一个servlet。
JSP转换后的servlet代码放在<tomcat home>/work/Catalina/<server name>/<web app name>/org/apache/jsp下。
注意:如果是第一次访问.JSP文件,速度会很慢,因为要被服务器翻译成对于的Java(Servlet)文件,然后再被编译成.class文件并加载到内存中。但是如果是以后访问速度就会变快了,因为是直接调用内存中JSP实例。
例子:用JSP编写一个计算器
主要知识点有:
1、如何接受JSP页面提交的数据并处理
2、JSP中如何使用Java片段
3、JSP中如何使用JavaScript完成对数据合法性的校验。
代码如下:
<!--这是计算器的界面--><%@ page contentType="text/html;charset=gb2312"%><html><head><h1>我的计算器</h1><!--在JSP中添加js代码,防止用户空提交--><script language="Javascript"> <!-- //写一个函数验证用户是不是空提交 function checkNum(){ //判断num1是不是为空 if((form1.num1.value=="")||(form1.num2.value=="")){ window.alert("输入不能为空"); return false; } //判断num1是不是一个数 if((Math.round(form1.num1.value)!=form1.num1.value)||(Math.round(form1.num2.value)!=form1.num2.value)){ window.alert("输入的不是一个数字"); return false; } } --></script></head><body><!--这是计算的结果--><% //接收第一个数 String s_num1 = request.getParameter("num1"); //接收第二个数 String s_num2 = request.getParameter("num2"); //接收符号 String flag = request.getParameter("flag"); int num1 = 0; int num2 = 0; int result = 0; if((s_num1!=null) && (s_num2!=null) && (flag!=null)){ num2 = Integer.parseInt(s_num2); num1 = Integer.parseInt(s_num1); //计算 if(flag.equals("+")){ result = num1 + num2; }else if(flag.equals("-")){ result = num1 - num2; }else if(flag.equals("*")){ result = num1 * num2; }else if(flag.equals("/")){ result = num1 / num2; } }%><hr><form name="form1" action="myCal.jsp" >请输入第一个数:<input type="text" name="num1" value=<%=num1 %>><br/><select name="flag"><option value=+>+</option><option value=->-</option><option value=*>*</option><option value=/>/</option></select><br/>请输入第二个数:<input type="text" name="num2" value=<%=num2 %>><br/><input type="submit" value="计算" onclick="return checkNum();"></form><hr>计算结果:<%=result %></body></html>
新闻热点
疑难解答