首页 > 编程 > JSP > 正文

JSP的运行原理

2019-11-06 06:10:34
字体:
来源:转载
供稿:网友

容器拿到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>


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表