日期:2014-05-16  浏览次数:20414 次

JSP和Servlet基础知识点

?Servlet三个要素:
1.必须继承自HttpServlet
2.必须实现doGet()或者doPost()
3.必须在web.xml中配置Servlet?

<servlet> <servlet-name> </servlet-name> <servlet-class> </servlet-class> </servlet> <servlet-mapping> <servlet-name> </servlet-name> <url-pattern> </url-pattern> </servelt-mapping>


?
HttpServeltRrequest:请求对象
getParameter():获得表单元素的值
getAttribute():获得request范围中的属性值
setAttribute():设置reqeust范围中的属性值
setCharacterEncoding():设置字符编码
HttpSerletResponse:相应对象
sendRedirect():外部跳转
getWriter():获得输出流对象
setContentType("text/html; charset=utf-8"):设置相应内容格式和编码

?

?

?

四种会话跟踪方式:
1.Session

HttpSession session = request.getSession(); session.setAttribute("name", "zhangsan"); session.setAttribute("pwd", "aaa"); String name = (String) session.getAttribute("name");


?

2.cookie:

//创建Cookie Cookie cookie = new Cookie("name", "zhangsan"); //设置Cookie的超时时间 cookie.setMaxAge(24 * 60 * 60 *60); //把Cookie发送到客户端 response.addCookie(cookie); //得到客户端发送的Cookie Cookie [] cookies = request.getCookies(); for(int i=0; i <cookies.length; i++) { Cookie temp = cookies; String key = temp.getName(); String value = temp.getValue(); }

?

3.隐藏表单域

<input type="hidden" name="name" value="zhangsan" /> request.getParameter("name");

?4.Url重写
问号传参

LoginServlet?username=zhangsan&pwd=123 String name = request.getParameter("username"); String pwd =request.getPareameter("pwd");

?
内部跳转:

LoginServlet request.getRequestDispatcher("index.jsp").forward(request, resposne);

?外部跳转:

response.sendRedirect("index.jsp");

?内部跳转是一次请求和一次响应
外部跳转是两次请求和两次响应
ServletContext:Servlet上下文对象
它是一个公共区域,可以被所有的客户端共享
setAttribute():向公共区域里放入数据
getAttribute():从公共区域里取数据


三个标准范围:request, session, ServletContext
共同点:都有setAttribute(), getAttribute()
区别:范围不同,request < session < servletContext
服务器上的五大对象
request, response, servlet, session, servletContext
??
Jsp:Java Server Page
页面构成:7种元素
1.静态内容:html
2.指令:page, include, taglib:
<%@ 指令名 属性1="属性值1" 属性2="属性值2" %>
3.表达式: <%=表达式 %>
4.Scriptlet <% Java代码 %>
5.声明: <%! %>:变量和方法
6.动作: <jsp:动作名 属性="属性值"> </jsp:动作名>
7.注释:
客户端看不到的: <%-- --%>
客户端可以看到的: <!-- -->

?

?

Jsp的执行过程:
1.转译:Jsp--->Servlet
2.编译:Servlet---->.class
3.执行:.class
第一次访问jsp的时候响应速度较慢,后面请求时响应速度快
脚本:
表达式: <%= %>
Scriptlet: <% %>
声明: <%! %>

指令:
page:language, import, errorPage, isErrorpage
include:file
taglib:uri:指定标签库描述符的路径 prefix:指定标签的前缀
隐式对象:
分类:
1.输入和输出对象:
request(HttpServletRequest),
response(HttpServletResponse),
out(JspWriter), servlet中的out是PrintWriter
2.作用域通信对象:
pageContext,
request,
session(HttpSession),
application(ServletContext)
3.Servlet对象:page(this), config
4.错误对象:exception

?

JavaBean:
一个标准的JavaBean有三个条件
1.共有的类
2.具有不带参数的公共的构造方法
3.具有set()和get()方法
4.私有属性

Jsp中的标准动作:
1.useBean