jsp基础
来源:互联网 发布:sql 多个结果合并 编辑:程序博客网 时间:2024/06/01 10:33
概述
jsp = html+js+css+java代码+jsp标签
动态web技术
在html中嵌套java代码
jsp代码是怎么运行的
将jsp使用out.write() 输出
out为什么不用创建
out为jsp的内置对象,jsp共有9个内置对象
为什么能输出j?
<% int i=90; int j=i+10; %> <h1>sum=</h1> <% out.print(j); %>
翻译成servlet后 i 和j 都是在一个函数中的变量
提供的9个内置对象 (常用前6个)
相当于servlet的PrintWrite, 向客户端输出数据
接受客户端的 http请求 相当于 servlet的HttpServletRequest
getParamenter(String name);
getParameterValues(String name);
setAttribute(name, value);
getAttribute(name);
getCookie();
产生响应 , 相当于 servlet的HttpServletResponse
addCookie(Cookie cookie);
sendRedirect(“路径”); 请求重定向
保存用户信息, 跟踪用户行为 相当于 servlet的HttpSession
setAttribute(String name, Object obj);
getAttribute(String name);
多个用户共享对象, 计数器功能
<% pageContext.setAttribute(“a”, “aaa”); %>
<% out.print((String)pageContext.getAttribute(“a”));%>
运行的一个异常
代表jsp实例本身, 在servlet中相当于this
jsp对应的servlet的配置,可以的得到web.xml的参数
jsp的语法
指令元素
从jsp发送到一个数据到容器,设置全局变量,文字编码,引入包<li>page指令 language 嵌入的代码是什么 import 导入的包,供给jsp代码使用 session 默认为true 表示允许使用session对象,反之不允许 buffer 给out对象使用的缓存区大小, 默认8kb, 作用是out对象积攒到缓冲区大小后将内容提交 autoFlash 默认true 是否自动刷新到浏览器 isThreadSafe 默认true jsp的线程安全 errorPage 当jsp页面出现错误时 转到指定界面上 errorPage="error.jsp" contenType 指定网页以什么方式显示页面 pageEncoding servlet引擎以什么方式翻译 从jsp ->servlet<li>include指令 <%@ include file="b.jsp" %> 静态引入,把b.jsp引入, b.jsp只保留信息即可<li>taglib标签指令
脚本元素
就是java片段1.<%java代码 %>2.<%= 表达式 %>变量声明问题 在<% int i; %>声明的变量是局部变量 在<%!int i; %>中的是全局变量,jsp对应的sevlet的成员变量 <%! int i=0; %> <% int i =1; %> <%out.print(i);%> 输出1 局部变量优先
动作元素
<jsp:forward page="b.jsp"></jsp:forward> 页面跳转到b.jsp中 <jsp:include page="b.jsp"></jsp:include> 动态引入 和指令的include相同点 引入一个文件 和指令的include不同点 生成的是两个不同的servlet,分别对待。
两种注释
<li><!-- 注释 --> 用户能看见<li><%-- 注释 --> 用户看不见, 较为安全
tomcat保护机制
把jsp文件放在WEB-INF中, 防止用户通过浏览器直接输入地址访问,目的是保护这些jsp文件,可以创建一个入口页面,通过页面转发进入这些保护的文件,访问格式
jsp版计算器
计算界面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <script type="text/javascript" src="js/js1.js"></script> </head> <body> <form action="/myjsp/result.jsp" method="post" onsubmit="return checkNum()"> num1:<input type="text" id="num1" name="num1"><br> num2:<input type="text" id="num2" name="num2"><br> 运算符:<select name="oper"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select><br> <input type="submit" value="计算" onclick="return checkNum()"> </form> </body></html>
结果界面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> </head> <body> <% String num1 = request.getParameter("num1"); String num2 = request.getParameter("num2"); String oper = request.getParameter("oper"); double n1,n2,res=0; n1 = Double.parseDouble(num1); n2 = Double.parseDouble(num2); System.out.println(n1+" "+n2); if (oper.equals("+")){ res = n1+n2; } if (oper.equals("-")){ res = n1-n2; } if (oper.equals("*")){ res = n1*n2; } if (oper.equals("/")){ res = n1/n2; } out.print(res); %> </body></html>
js验证输入
/** * 验证用户的输入是否为空 */function checkNum(){ //获取num1, num2的值 var num1 = document.getElementById("num1").value; var num2 = document.getElementById("num2").value; if (num1=="" || num2==""){ alert("输入不能为空"); return false; } var reg=/^[0-9]*$/i; if (!reg.test(num1) || !reg.test(num2)){ alert("非数字"); return false; }}
将两个文件合二为一(js文件不变)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <script type="text/javascript" src="js/js1.js"></script> </head> <% String num1 = request.getParameter("num1"); String num2 = request.getParameter("num2"); String oper = request.getParameter("oper"); double n1=0,n2=0,res=0; if (num1 != null && num2 != null && oper != null){ n1 = Double.parseDouble(num1); n2 = Double.parseDouble(num2); if (oper.equals("+")){ res = n1+n2; } if (oper.equals("-")){ res = n1-n2; } if (oper.equals("*")){ res = n1*n2; } if (oper.equals("/")){ res = n1/n2; } } %> <body> <form action="/myjsp/calculator.jsp" method="post" onsubmit="return checkNum()"> num1:<input type="text" id="num1" name="num1"><br> num2:<input type="text" id="num2" name="num2"><br> 运算符:<select name="oper"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select><br> <input type="submit" value="计算" onclick="return checkNum()"><br> 结果:<%= res%> </form> </body></html>
阅读全文
0 0
- jsp基础
- jsp 基础
- JSP基础
- JSP基础
- JSP基础
- Jsp基础
- JSP基础!
- JSP基础
- JSP基础
- JSP基础
- JSP基础
- JSP基础
- JSP基础
- JSP基础
- JSP基础
- JSP基础
- jsp基础
- JSP基础
- Java面试题目
- The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- PLSQL块结构
- 51Nod-1624-取余最短路
- 如何控制回撤
- jsp基础
- Dockerfile注意事项
- spring jar作用
- Jsonp跨域请求
- 简单的手势判断
- 对弈(把九角距离转换为曼哈顿距离)
- hdu1251(字典Trie树)
- Android开发笔记(八十八)同步与加锁
- 【Spring】Spring Framework Reference Documentation中文版28