JAVAWEB


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("");

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);
    }
}


文章作者: Dydong
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Dydong !
  目录