servlet
1.webapps下的目录结构
项目名称:
-WEB-INF
-classes文件夹
-lib文件夹
-web.xml
<servlet>
<servlet-name>filterServlet</servlet-name>
<servlet-class></servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>filterServlet</servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>
2.servlet要运行于服务器端
3.要具有处理客户端请求能力,必须要实现servlet接口,继承GenericServlet或HttpServlet
4.servlet的生命周期
init(),service(),destroy()
当第一个请求到来的时候,容器为我们生成servlet对象,
而且在整个过程中只有这么一个对象,对象创建后会自动调用init()方法,
仅调用一次,之后调用service()方法以多线程形式处理客户端请求,最后当服务器
关闭,或强行加载的时候调用distroy()方法
5.HttpServletRequest主要用来接收客户端信息,HttpServletResponse主要用来设置返回给客户端的信息
主要方法:
request:getParameter(String s),setAttribute(String name,Object value)
getAttribute(String name),setCharacterEncoding(String encoding);
getRequestDispatcher(String url).forward(request,response);
response:setCharacterEncoding(String encoding),setContentType("text/html;charset=GBK");
getWriter();sendRedirect(String url)
6.ServletConfig
得到方式:ServletConfig=this.getServletConfig()
得到web.xml里面的参数信息:getInitParameter(String name)
7.过滤器
过滤器必须实现Filter(javax.servlet.Filter)
doFilter(ServletRequest request,ServletResponse,FilterChain nextChain)
{
nextChain.doFilter(request,response)
}
web.xml配置:
<filter>
<filter-name></filter-name>
<filter-class></filter-class>
</filter>
<filter-mapping>
<filter-name></filter>
<url-pattern>/*</url-pattern>
or
<servlet-name>filterServlet</servlet-name>
</filter-mapping>
jsp
1.基本语法
(1).注释<%-- --%>jsp注释
<!--<%=new java.util.Date() --> html注释
(2).<% %>脚本段
(3).<%! %>声明
(4).<%= %>表达式(单独使用,还可以为变量赋值)
2.编译指令
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="GBK"
session,isErrorPage,ErrorPage,contentType,isThreadSafe%>
<%@ include file="url" %>
<%@ taglib prefix="" uri="" %>
3.动作指令
(1)<jsp:forward page="url">
<jsp:param>
<param-name></param-name>
<param-value></param-value>
</jsp:param>
</jsp:forward>
注意事项:
(1)forward下面的所有语句不会被执行到
(2)当前页面和转向页面共用一个request对象
(2)<jsp:include page="url?name=value">
<jsp:param>
<param-name></param-name>
<param-value></param-value>
</jsp:param>
</jsp:include>
1.url可用变量代替
2.可传递参数
(3)<jsp:userBean id="user" class="com.ibm.User" scope="session"></jsp:useBean>
相当于
<% User user = new User(); %>
//设置属性值
<jsp:setProperty name="user" property="username" value="zhangsan"></jsp:setProperty>
相当于
<% user.setUsername("zhangsan");%>
//获取属性值
<jsp:getProperty name="user" property="username"></jsp:setProperty>
相当于
<% user.getUsername();%>
注意事项:
(1)javabean要提供无参构造方法
(2)成员变量一般设成私有的,并且首字母小写
(3)要有set和get方法
4.jsp九大内置对象
(1)out (2)session (3)request (4)response (5)application (6)pageContext
(7)page (8)config (9)exception
5.page,request,session,application作用范围
page:当前页面
request:就是一次请求(request.setAttribute("list",new ArrayList()),request.getAttribute("list"))
session:一次会话((session.setAttribute("list",new ArrayList()),session.getAttribute("list"))
application:整个web项目((application.setAttribute("list",new ArrayList()),application.getAttribute("list")))
6.form表单的各元素
文本框:<input type=text name=username />
密码框:<input type=password name=password />
单选按钮:<input type=radio name=myradio checked />
<input type=radio name=myradio />
复选框:<input type=checkbox name=mycheckbox />
<input type=checkbox name=mycheckbox />
下拉列表:<select name=myselect>
<option value=1 selected>刘德华</option>
</select>
文本域: <textarea cols=10 rows=10 name=mytextarea>
默认文字
</textarea>
提交按钮:<input type=submit value="提交">
重置按钮:<input type=reset value="重置">
取值方法:
单值:request.getParameter(String name);
多值:String s[]=request.getParameterValues(String name);
7.四种会话跟踪技术
(1)Cookie
(2) 隐藏表单域(<input type=hidden name="" value=>
(3) url重写
(4)内部session(session.setAttribute(String name,Object value),session.getAttribute(String name))
使用session注意:使用完要将session中的信息清除掉
session.remove(String name):清除session中的某个值
session.invalid():使所有的session都失效
8.两种模式
1.mv(model,view)
2.mvc(model,view,cotroller)