目录
一.servlet
1.1 什么是servlet?
1.2 实现接口,初始代码
1.3 学会配置和映射
1.4 掌握servlet的生命周期
生命周期的各个阶段
1.5 获取servlet初始化参数和上下文参数
1.5.1 初始代码 推荐使用
1.5.2 初始化参数
1.5.3 上下文参数
1.6 servlet应用:处理用户登录请求
重点:如何拿到表单提交的数据?
1.6.1 为简化配置,推荐采用注解方式
1.6.2 HttpServletRequest方法:
1.6.3 HttpServletResponse方法
二.表单提交方式
三.页面跳转方式
①重定向
②转发
③区别
一.servlet
1.1 什么是servlet?
Servlet是在服务器端运行的Java程序,可以接收客户端的请求并做出响应
Servlet可以动态生成HTML内容对客户端进行响应
Servlet与JSP的关系
1.2 实现接口,初始代码
/**
* 了解servlet的生命周期
* 构造方法 初始化init( ) 销毁destory( )只在第一次的时候被执行
* service( )每向服务器发送一次请求 都会执行该方法
* @author
*
*/
public class HelloServlet implements Servlet {
public LoginServlet() {创建}
public void destroy() {销毁}
public ServletConfig getServletConfig() {
return null;
}
public String getServletInfo() {
return null;
}
public void init(ServletConfig arg0) throws ServletException {初始化 }
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
//每向服务器发送一次请求 都会执行该方法
("处理请求中~");
}
1.3 学会配置和映射
<!-- 配置servlet(AAservlet) -->
<servlet>
<servlet-name>aa</servlet-name>
<servlet-class>com.zking.servlet.AAservlet</servlet-class>
</servlet><!-- 映射servlet(AAservlet) -->
<servlet-mapping>
<servlet-name>aa</servlet-name>
<url-pattern>/请求路径</url-pattern>
</servlet-mapping>
<!-- 注意:但凡是改了web.xml文件的内容 务必记得重启服务器再运行! -->
1.4 掌握servlet的生命周期
生命周期的各个阶段
1.5 获取servlet初始化参数和上下文参数
1.5.1 初始代码 推荐使用
public class LoginServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp){
处理get请求
}@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws{
处理post请求
}
}
1.5.2 初始化参数
<!--配置servlet(HelloServlet)-->
<servlet>
<servlet-name>bb</servlet-name>
<servlet-class>com.zking.servlet.BBServlet</servlet-class>
<!-- 初始化参数 -->
<init-param>
<param-name>sb</param-name>
<param-value>瑶大头</param-value>
</init-param>
</servlet><!--只能在对应的一个servlet中拿到值:---->
this.getInitParameter("参数名");
1.5.3 上下文参数
<context-param>
<param-name>yy</param-name>
<param-value>瑶瑶,大头大头</param-value>
</context-param><!-- 上下文参数:可被整个应用共享 -->
this.getServletContext().getInitParameter("参数名")
1.6 servlet应用:处理用户登录请求
重点:如何拿到表单提交的数据?
1.6.1 为简化配置,推荐采用注解方式
@WebServlet("/请求url")
public class LoginServlet extends HttpServlet { }//其等同于
<!-- 配置servlet(AAservlet) -->
<servlet>
<servlet-name>aa</servlet-name>
<servlet-class>com.zking.servlet.AAservlet</servlet-class>
</servlet>
<!-- 映射servlet(AAservlet) -->
<servlet-mapping>
<servlet-name>aa</servlet-name>
<url-pattern>/aa.do(/请求URL)</url-pattern>
</servlet-mapping>
1.6.2 HttpServletRequest方法:
[String getParameter(String name )]: 根据name值得到value值
[String [ ] getParameterValues(String name ) ]: 根据name值得到多个value值 例如: 爱好
[void setCharacterEncoding(String charset) ]:设置请求的编码方式 防止中文乱码
[void setAttribute(String key,object value) ]:存值[键值对的方式]
[Object getAttribute(String key)]:根据键拿到值
1.6.3 HttpServletResponse方法
[void setContType (String arg0)]:设置响应的编码方式
[PrintWriter getWriter()]: 获得内置对象out
二.表单提交方式
<form action="请求路径url" method="get/post"></form>
表单提交有两种方式
1.get(默认) 地址栏会显示信息,安全性低;有数据长度限制
2.post 反之 以后推荐使用post
三.页面跳转方式
①重定向
resp.sendRedirect("xx.jsp")
out.print("<script> alert('提示信息');location.href='页面地址';</script>")
②转发
req.getRequestDispatcher("xx.jsp").forward(req, resp);
③区别
重定向: 地址栏发生改变; 不能携带数据跳转; 可以跳转到任意资源; 在客户端发挥作用
转发: 地址栏不发生改变,停留在了之前的位置 可以携带数据跳转 只可转发到当前项目内资源; 在服务端发挥作用