JAVAWEB
WEBXML
//用tomcat自带的格式,servlet可以写映射路径
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true">
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>com.dyd.request.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<session-config>
<!-- m分种后session过期 -->
<session-timeout>15</session-timeout>
</session-config>
<error-page>
<error-code>404</error-code>
<location>/path</location>
</error-page>
</web-app>
HttpResponse
下载文件
public class FileServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取下载文件的路径
String realPath = "D:\\untitled\\javaweb\\untitled\\untitled\\javaweb-02\\response\\src\\main\\resources\\1.png";
//下载文件名
String fileName = realPath.substring(realPath.lastIndexOf("\\")+1);
//更改浏览器配置
resp.setHeader("Content-disposition","attachment;filename="+fileName);
//获取文件输入流
FileInputStream in = new FileInputStream(realPath);
//创建缓冲区
int len=0;
byte[] buffer = new byte[1024];
//获取输出流对象
ServletOutputStream out = resp.getOutputStream();
//写入到文件缓冲区
while((len=in.read(buffer))>0){
out.write(buffer,0,len);
}
//关闭流
in.close();
out.close();
}
}
重定向
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.sendRedirect("/response");
}
HttpRequest
//获取单个名字
String username = req.getParameter("username");
String password = req.getParameter("password");
//获取多选框
String[] parameterValues = req.getParameterValues("");
Cookie
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
PrintWriter writer = resp.getWriter();
Cookie[] cookies = req.getCookies();
if(cookies!=null){
writer.write("上一次的时间是:");
for(int i=0;i< cookies.length;i++)
{
Cookie cookie = cookies[i];
//获得cookie的名字
if(cookie.getName().equals("time"))
{
//取出cookie值
long time=Long.parseLong(cookie.getValue());
Date date = new Date(time);
writer.write(date.toString());
}
}
}
else writer.write("The first time!");
Cookie cookie = new Cookie("time", System.currentTimeMillis()+"");
resp.addCookie(cookie);
}
Session
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
//设置session
HttpSession session = req.getSession();
String name = (String) session.getAttribute("name");
PrintWriter writer = resp.getWriter();
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
//获取session
HttpSession session = req.getSession();
Person per = (Person) session.getAttribute("name");
System.out.println(per);
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
HttpSession session = req.getSession();
session.removeAttribute("name");
//手动注销session
session.invalidate();
}
JSP
<%--导入包--%>
<%@ page import="com" %>
<%--404配置--%>
<%@ page errorPage="/path" %>
<%@include file="index.jsp"%>
<%-- 注释,不会在客户端显示--%>
<%-- 全局申明--%>
<%!
public String name;
%>
<%-- 输出表达式--%>
<%=new java.util.Date()%>
MVC
三次架构:
MODEL:业务逻辑
VIEW:展示数据,接收请求
CONTROLLER:接受请求,交给业务层处理代码
Filter
加在servlet和浏览器之间,做一个过滤的作用,同时要在webxml中加入配置。
public class CharacterEncodingFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("init!!!");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("utf-8");
servletResponse.setContentType("text/html;charset=utf-8");
System.out.println("before......");
//使用过滤器
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("after......");
}
@Override
public void destroy() {
System.out.println("Destroy!!");
}
}
权限控制:
public class SysFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
if(request.getSession().getAttribute(USER_SESSION)==null)
response.sendRedirect("/Login.jsp");
filterChain.doFilter(servletRequest,servletResponse);
}
}