JavaWeb学习记录
Servlet
什么是Servlet
(1) Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器端程序,其
主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语
言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下
,人们将Servlet理解为后者。
(2) Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请
求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
(3) Servlet工作模式:
① 客户端发送请求至服务器
② 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器
③ 服务器将响应返回客户端
创建第一个Servlet
首先创建一个类实现Servlet接口,重写方法。或继承HttpServlet
public class LoginServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
//初始化方法
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
//处理get/post请求的方法
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
//销毁的方法
}
}
然后在web.xml中配置文件
<servlet>
<servlet-name>自定义名称</servlet-name>
<servlet-class>处理请求的类的完整路径</servlet-class>
</servlet>
<servlet-mapping><!-- mapping 表示映射 -->
<servlet-name>自定义名称</servlet-name>
<url-pattern>请求名</url-pattern>
</servlet-mapping>
Servlet生命周期
当客户端首次发送第一次请求后,由容器(web服务器(tomcat))去解析请求, 根据请求找到对应的servlet,判断该类的对象是否存在,不存在则创建servlet实例,调取init()方法进行初始化操作,初始化完成后调取service()方法,由service()判断客户端的请求方式,如果是get,则执行doGet(),如果是post则执行doPost().处理方法完成后,作出相应结果给客户端,单次请求处理完毕。
当用户发送第二次以后的请求时,会判断对象是否存在,但是不再执行init(),而直接执行service方法,调取doGet()/doPost()方法。
当服务器关闭时调取destroy()方法进行销毁。
四个过程:
(1)实例化 --先创建servlet实例
(2)初始化 --init()
(3)处理请求 ---service()
(4)服务终止 --destory()
JSP
什么是JSP
JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,
它是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术
有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)
和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,
既能在Linux下运行,也能在其他操作系统上运行。
JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序
的开发变得迅速和容易。
*.html 静态页面(包含固定的页面内容)
*.jsp 动态页面(页面数据可以动态更新,支持嵌套java代码和html代码)
1.servlet展示信息的不方便,引入了JSP。
2.JSP本质上也是一个servlet!!!!!!
3.JSP就是在HTML页面中嵌入了java代码。
JSP中嵌套Java代码
page指令:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
如果把一个数据存在request域中,取值操作如下:
1.servlet展示信息的不方便,引入了JSP。
2.JSP本质上也是一个servlet!!!!!!
3.JSP就是在HTML页面中嵌入了java代码。
声明标签 <%!变量或者方法声明%>
表达式标签 <%= 表达式%> 在页面上显示的效果
程序代码标签 <%java代码%> 页面上动态展示内容
<body>
<%! int i=10;%><!--成员变量-->
<%! public void show(){}%> <!--成员方法-->
<%=i%> <!--输出变量值-->
</body>
EL、JSTL
EL使用:
语法格式:${需要展示信息的名字}
JSTL使用:
在JSP页面中引入<%@ taglib prefix=”页面使用的名称” uri=”功能范围的路径”%>