javaEE与JSP基础
JSP基础
1. jsp的作用:
* Servlet:
> 缺点:不适合设置html响应体,需要大量的response.getWriter().print("<html>")
> 优点:动态资源,可以编程。
* html:
> 缺点:html是静态页面,不能包含动态信息
> 优点:不用为输出html标签而发愁
* jsp(java server pages):
> 优点:在原有html的基础上添加java脚本,构成jsp页面。
2. jsp和Servlet的分工:
* JSP:
> 作为请求发起页面,例如显示表单、超链接。
> 作为请求结束页面,例如显示数据。
* Servlet:
> 作为请求中处理数据的环节。
3. jsp的组成
* jsp = html + java脚本 + jsp标签(指令)
* jsp中无需创建即可使用的对象一共有9个,被称之为9大内置对象。例如:request对象、out对象
* 3种java脚本:
> <%...%>:java代码片段(常用),用于定义0~N条Java语句!方法内能写什么,它就可以放什么!
> <%=...%>:java表达式,用于输出(常用),用于输出一条表达式(或变量)的结果。response.getWriter().print( ... );这里能放什么,它就可以放什么!
> <%!...%>:声明,用来创建类的成员变量和成员方法(基本不用,但容易被考到),类体中可以放什么,它就可以放什么!
案例:演示jsp中java脚本的使用!
<%int a=10 ;%> <% out.print(a); %> <%= a%> <%! private String hello = "world"; public String sayHello() { return hello; } %> <%=sayHello()%>
案例:演示jsp与servlet分工!
代码:
from.jsp//提交数据
<form action="/Day11_1//Aservlet" method="post"> 整数1:<input type="text" name="int1"/> 整数2:<input type="text" name="int2" /><br> <input type="submit" value="相加" /> </form>
result.jsp//显示结果
<body> <% Integer a=(Integer)request.getAttribute("result") ;%> <%=a%> </body>
Aservlet//处理数据
1 public void doPost(HttpServletRequest request, HttpServletResponse response) 2 throws ServletException, IOException { 3 //获取数据 4 String int1=request.getParameter("int1"); 5 String int2=request.getParameter("int2"); 6 if(int2==null||int1==null){ 7 System.out.println("输入值为空"); 8 }else{ 9 //转换数据为int 10 int i1=Integer.parseInt(int1); 11 int i2=Integer.parseInt(int2); 12 //数据相加 13 int sum=i1+i2; 14 //保存数据 15 request.setAttribute("result", sum); 16 //请求包含 17 request.getRequestDispatcher("/jia/result.jsp").forward(request, response); 18 } 19 }
4. JSP真身
* JSP也是Servlet
* JSP会在第一次被请求时编码成.java,再编码成.class文件,它其实就是一个Servlet,在处理请求时执行service()方法。
查看真身可以得到,jsp中有9个对象可以无需创建即可使用,它们就是jsp九大内置对象。
5. JSP注释
* <!-- -->,html注释,不是JSP注释,它会出现在JSP的真身中,并发送到客户端,但客户端浏览器不会显示它。
* <%-- --%>,JSP注释,它不会出现在JSP真身中,也就不可能发送到客户端浏览器了。