????Web??ú?????????
????1????Servlet???????????????е?Web?????????
????2???????????web???
????Servlet??JSP?????
???????????????????????????????????
????JSP????????ó??????????????????????????????????????????????
????Servlet???Java??????ó???????????????????????????????????????
??????????????????Servlet???????????????servlet????????????????Web??????????????????????????HTML??????????Java??????С?????????????侲???HTML????????????Java???????????б?????????servlet????????HTML??????Щ???HTML????????????????????HTML??????Java?????????????????????????????Щ????JSP?????????????????????
???????????CurrentTime.jsp?????????
????<html>
????<head>
????<title>CurrentTime</title>
????</head>
????<body>
????CurrentTime is <%= new java.util.Date()%>
????</body>
????</html>
????????????tomcat?????????С?
????5. ???????Servlet??Servlet??????????????????????????????????Servlet??????????Servlet????е????????????????????????д???????????Servlet?????????????????????
???????Servlet??????????????????
????1??Servlet?????javax.servlet.singleThreadModel(Servlet2.4??????????y??)???????Servlet?????????Servlet?????????????????У??????????????????????????Servlet??service()??????   ????????????????Ч???
????2????????????????t??????  ???
????3????????????? synchronized{...}  ????????
????6. Cookie??????????“????”???????????WEB?????????????????????????????????????????????????????????????????????Cookie????????????????????????????????????á???????????????HTML5???????ù???cookie???尸????
???????????H5/js/common.js?е???????????
//???浽cookie
function setCookie(name??value??days)
{
var exp = new Date();
exp.setTime(exp.getTime() + days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
//???cookies
function getCookie(name)
{
var arr??reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
?????????????????????????cookie?????cookie??
????setTimeout(function() {
????var cookieChid=getCookie('chid');
????if(cookieChid !='w5')
????{
????$("#underonlaodFlag").attr("style"??"display:display");
????}
????}??300);
??????????????У???????JS?????300ms??У???????????common.js?? ????????JS???????ж??
????var uid=getCookie('uid')==null?'':getCookie('uid');  //?????????????????????cookie???????
????????????????
public class CookieServlet extends HttpServlet
{
private int count1;
private int count2;
@Override
protected void doGet(HttpServletRequest req?? HttpServletResponse resp)
throws ServletException?? IOException
{
Cookie cookie = new Cookie("cookiename"+ count1++??"cookievalue"+ count2++);
cookie.setMaxAge(10);//?????????  ??λ??
resp.addCookie(cookie);
Cookie[] cookies = req.getCookies();
if(null == cookies)
{
return;
}
for(Cookie cookie2:cookies)
{
System.out.println(cookie2.getName());
System.out.println(cookie2.getValue());
}
}
}
//????????????Servlet ?д??????洢?????????洢Cookie??????
????7. ??????cookie?????????????????????????????????????????????cookie?????????????????????????????Session?????Session???????????????Session???????????????????????WEB????????????????????????????Session?У????????????????????????????п???????????????????????????
????Web????????????????????????????
????1?????????и???????????????  type=hidden
????2????д?????????????URL
????3????ó?????Cookie
????4?????Servlet API?е?Session(??)????
????Session???????????
?????????????η???WEB????????Session??????????????????μ?session
????????????????????WEB????в????????????????????session??
???????????£?JSP????????Session???????????Session?????????<%@ page session="false"%>
??????????????£?Session???????????????Servlet?????????HttpSession?????????
????1??????????????
????2??Session????
????3???????????????HttpSession??Invalidate()????
?????????????????????????Session??
???????????????????????????????????????????е?????????????javascript?????window.onclose??????????????????????????????????????????????Session??
???????????????????????????????????????????????????????
?????????????????????????????????????÷???????Session??????????????
????Session???л????
?????????Session??????Servlet?????????????HttpSession??????HttpSession?????п???????????????????繺??????
????Servlet?????HttpSession?????????????????SessionID??Servlet??????SessionID???Cookie????????????????С?
??????ο??????Http???????Servlet?????????HttpServletRequest?????ж??SessionID????????SessionID????????HttpSession??????????????????????
????Session????HttpSession:
????getId()   ????session??ID
????Invalidate()  ????session?Ч??Servlet?????????HttpSession???????????
????getAttribut()     setAttribute()
????isNew()  ?ж???????′?????session??????????true ??????false
????setMaxInactiveInterval()  ????session?????Ч??? ??λ??? ???????????????????????session??????????????Ч???????????????30????
????8. ?????Servlet????????????????????????????????Servlet??????????Servlet???????Filter??
????Servlet??????????Java Servlet?淶2.3?ж????????????Servlet????????????????????м???????Servlet???????????????????????????????????????á?Servlet???????????Servlet???????????Request???????Request Header??Request???????Servlet?????ú???Response Header??Response?????Servlet?????????????WEB???????????Servlet??JSP??HTML??
????Filter????
????????Servlet?????????????javax.serlvet.Filter???????????к?????????????????????:
????init(FilterConfig)??????Servlet??????????????????Servlet????????Servlet???????????????????????????????п?????web.xml??Servlet????????????????
????doFilter(ServletRequest??ServletResponse??FilterChain):???????????????????????????????????????????????URL?????Servlet?????????????doFilter??????FilterChain??????????????????????
????destroy()??Servlet??????????????????????????????????????????п??????Servlet???????????????
??????????????????struts????е???????????????????????
????//???????web.xml?????struts2??????????????????
????<filter>
????<filter-name>struts2</filter-name>
????<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
????</filter>
????<filter-mapping>
????<filter-name>struts2</filter-name>
????<url-pattern>/*</url-pattern>
????</filter-mapping>