servlet:
缺点:
显示html的时候,麻烦。out.println("<html>");
优点:
servlet就是一个java类。编写容器。
调试容易。ide。
jsp
jsp=html+java代码
java server pages(java服务器端页面)
1.jsp和servlet区别:
jsp和servlet是本质相同的技术。容器负责编译jsp-----servlet
表现形式。
servlet---java类
jsp-------文本(静态资源)
1.jsp以源文件部署到容器中。(servlet需要编译成class文件后,部署到容器中)
2.jsp部署到容器的根目录下,和静态资源位于相同的目录。(web-inf/classes)
3.容器编译jsp的源文件到servlet class类:有第一个请求访问jsp的时候,容器编译。如果部署到容器中的jsp源文件被修改了,容器会重新的编译jsp到servlet
4.jsp---servlet,类名:文件名_jsp.java
5.jsp中的html的代码后被jsp引擎放入到servlet的out.write()函数中。
在jsp中的嵌入java代码必须放在指定的标记中。
1.jsp的三种原始标签
2.jsp的指令标签
3.jsp的动作标签
4.在jsp2.0规范后,提出el表达式
5.自动以的标签(jstl标签库,struts标签库,分页标签库)
jsp中原始的三种标签
<%! %>------声明标签,声明变量和函数(声明的变量是成员变量,函数是和_jspservice并列的函数体)
<% %>------脚本标签 编译在_jspservice函数体的内部
<%=java表达式 %>------赋值标签 out.println(add(3,4));
练习1:
以20%概率显示你中奖了!~
练习2:
把背景颜色根据输入的值进行改变用jsp来实现。
jsp的指令标签:
<%@ 标签名 属性=值 属性=值。、。。。 %>
page include
<%@ page language="java"%>
language="java":
import="java.util.*,com.bluedot.user,"
<%@ page import="java.util.*"%>
<%@ page import="com.bluedot.user"%>
pageencoding="utf-8"----告诉jsp引擎,在解析我们的jsp的文件的时候用什么编码方式
----
contenttype="text/html; charset=utf-8"
response.setcontenttype("text/html; charset=utf-8");
练习3:
把给客户端产生excel表格的例子改成用jsp来实现。(字符型响应)
<%@ page errorpage="error.jsp"%>
jsp中的内置对象(暗对象):9个
jsp servlet中的类型
request-------------------------httpservletrequest
response------------------------httpservletresponse
application---------------------servletcontext
session-------------------------httpsession(受指令标签page的session属性控制,默认可以使用)
config--------------------------servletconfig
out-----------------------------printwriter(jspwriter)
exception-----------------------exception(有条件的出现,当page指令的标签的iserrorpage为true的时候)
page
pagecontext