zoukankan      html  css  js  c++  java
  • JSP的运行原理

    容器拿到JSP,会把它转换为一个servlet类源文件(.java),然后再把这个源文件编译为java servlet类。也就是说,JSP本质上就是一个servlet。


    JSP转换后的servlet代码放在<tomcat home>workCatalina<server name><web app name>orgapachejsp下。

    注意:如果是第一次访问.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>



  • 相关阅读:
    沿着河边走,环城60公里
    与客家土楼的约会(叶剑英故居福建)
    与客家土楼的约会(增城河源)
    与客家土楼的约会(东源龙川)
    C#几个经常犯错误
    C# 获取当前路径方法
    C# Stopwatch与TimeSpan详解
    话说程序员成熟的标志
    C#开源项目介绍
    C#各种加密算法的研究
  • 原文地址:https://www.cnblogs.com/yzy-blogs/p/6597320.html
Copyright © 2011-2022 走看看