JSP的运行原理

容器拿到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="计算" οnclick="return checkNum();">
</form>
<hr>
计算结果:<%=result %>
</body>

</html>



转载于:https://www.cnblogs.com/yzy-blogs/p/6597320.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值