Servlet简介
平台无关的基于Java技术的web组件,
1.Servlet被编译为平台独立 的字节码,可以被动态地加载到支持Java技术的Web服务器中运行。
2.Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户的通信采用“请求/响应”的模式。
3.Servlet的功能:
1:接收用户请求的HTTP协议,解析。 HTTP协议,超文本传输协议 请求响应模型
2:返回一个http的响应协议。让浏览器再去解析。
Servlet容器
请求 ServletRequest
响应 ServletReaponse
开发一个servlet,有三种方法
实现javax.servlet.Servlet接口
继承javax.servlet.GenericServlet
继承javax.servlet.HttpServlet(推荐) 重点
在IDEA 上连接tomcat
在Settings里找到Build,Execution,Deployment 选Application Servers 添加服务器tomcat Server,找到tomcat的根目录选ok。 创建module,选javaEE 6 在下面选中Web Application 创建一个web工程
web下可以放页面
web-inf 下受保护的
1.实现Servlet接口
1,创建一个类 继承Servlet接口,重写里面的方法
public class HelloServlet implements Servlet{
//构造方法,第一次加载servlet的时候执行,执行一次
public HelloServlet() {
System.out.println("fsfewfw");
}
//初始化:第一次加载servlet的时候执行,执行一次 初始化
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("init方法执行了");
}
//用于获取这个servlet在web.xml中的配置信息
@Override
public ServletConfig getServletConfig() {
return null;
}
//servlet方法,请求响应,每次请求都调用,实际用于获取用户请求和响应结果
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("servlet方法执行了。。。");
}
//此方法 用于获取这个serlvet的名称
@Override
public String getServletInfo() {
return null;
}
//关闭的方法
@Override
public void destroy() {
System.out.println("关闭了");
}
}
2, 在web.xml中配置一个servlet 在web.xml中注册和映射servlet
<servlet>
<!--注册名-->
<servlet-name>hello</servlet-name>
<!--servlet的源路径-->
<servlet-class>com.hpe.servlet.HelloServlet</servlet-class>
</servlet>
<!--映射servlet-->
<servlet-mapping>
<!--与注册名一致-->
<servlet-name>hello</servlet-name>
<!--浏览器的访问路径 /:代表的是当前web应用的根目录:localhost:8080/servlet01-->
<url-pattern>/hello</url-pattern>
<!-- http://localhost:8080/hello-->
</servlet-mapping>
过程为:通过请求地址到web.xml中找servlet-mapping 匹配相应的访问路径,找到注册名根据相应的注册名找到相应的servlet。 里面有原地址,就成了
状态码,
500服务器错误 空指针
404 没有找到服务器