Servet一些东西

Servlet 写控制语句
JSP 显示页面
 
Servlet 主要是 Contyol控制—控制用Contyol做~~ 用View显示给用户看。用JSP做-
MVC 模型视图控制
RequestDispatcher rd = Request.getRequestDispatcher(“”)
Rd.fo
 
对话用request保存 对话 一次 结束
发送响应 返回响应 则结束
 
Session 会话 会话关闭socket才会结束
 
 
   < servlet >
      < servlet-name > BookListServlet </ servlet-name >
      < servlet-class >
        com.softeem.books.servlet.BookListServlet
      </ servlet-class >
   </ servlet >
   < servlet-mapping >
      < servlet-name > BookListServlet </ servlet-name >
      < url-pattern > /booklist </ url-pattern >
   </ servlet-mapping >
 
 
   < servlet >
      < servlet-name > Bookservletupdate </ servlet-name >
      < servlet-class >
        com.softeem.books.servlet.Bookservletupdate
      </ servlet-class >
   </ servlet >
   < servlet-mapping >
      < servlet-name > Bookservletupdate </ servlet-name >
      < url-pattern > /bookupdate </ url-pattern >
   </ servlet-mapping >
 
 
XML 的配置
 
 
 
JSP    是一个特殊的 sevlet
 
JSP  调用 –jspservlet 方法
 
Servlet 调用 doGet () dopost ()方法
 
反射机制
通过 Class.forName() 变成对象
Class.forName() 返回 object
 
JSP 先解析 在编译   然后执行
 

Tomcat JSP 有修改后。则在解析编译在执行否则执行上一次的.class

doGet()
<form>
数据需要提交。有两种选择 doGet() . dopost()
</form>
超连接使用 doGet() 提交
数据过多 使用 dopost() 提交 多次发送数据
 
doPost()
 
Servlet 里的方法
doGet()
doPost()
init()  当用户访问的第一次访问时被调用。(以后不调用,只调用一次)
Destyor() 当服务器关闭时调用
response.sendRedirect("booklist"); 一次对话。一次请求一次响应。返回 null
RequestDispatcher rs = request.getRequestDispatcher("Book.jsp");
rs.forward(request, response); 多次会话
 
 
MVC  核心 C
<load-on-startup>1</load-on-startup> // 服务器启动则加载 init() 不然当第用户访问加载 init()
初始化 参数  
 
< init-param >
< param-name > driverName </ param-name >
< param-value > com.softeem.books
</ init-param >
       
< servlet >
              
< init-param >
              
< param-name > DriverName </ param-name >
       
< param-value > com.softeem.microsoft.sqlserver.SQLServerDriver </ param-value >
              
</ init-param >
              
< init-param >
              
< param-name > URL </ param-name >         < param-value > jdbc:microsoft:sqlserver://locahost:1433;DatebaseName="basicInfo" </ param-value >
       
</ init-param >
       
< init-param >
       
< param-name > User </ param-name >
       
< param-value > sa </ param-value >
       
</ init-param >
     
</ init-param >
 
              
< init-param >
              
< param-name > Password </ param-name >
              
< param-value > 123 </ param-value >
              
</ init-param >
              
< servlet-name > BookListServlet </ servlet-name >
              
< servlet-class >
                     com.softeem.books.servlet.BookListServlet
              
</ servlet-class >
              
< load-on-startup > 1 </ load-on-startup >  //服务器启动则加载init()不然当第用户访问加载init()
       
</ servlet >
           
< init-param >
              
< param-name > Password </ param-name >
              
< param-value > 123 </ param-value >
              
</ init-param >
              
< servlet-name > BookListServlet </ servlet-name >
              
< servlet-class >
                     com.softeem.books.servlet.BookListServlet
              
</ servlet-class >
              
< load-on-startup > 1 </ load-on-startup >
       
</ servlet >
 
 
Web – inf 里面所有的东西都不能访问。
 
文件下载  
<a href=” 文件名 .txt” > 文件下载 </a>
 
String path = this.getServletContext().getRealPath(“/”); 获取到这个目录
 
 
文件下载实现
protected void Press(HttpServletRequest request,
       HttpServletResponse response) throws ServletException, IOException {
       String filename = request.getParameter( "filename" );
       String path = this .getServletContext().getRealPath( "/" ); // 获取当前tomcat路劲
       response.setContentType( "application/pdf" );
       File file = new File(path + "//Web-inf//" + filename); // 文件路劲
       InputStream in = new FileInputStream(file);
       response.addHeader( "Content-Disposition" , "attachment;filename="
              +filename); // 给文件名字
       response.setContentLength(( int )(file.length()));  // 给文件长度
       OutputStream out = response.getOutputStream();
      
       byte [] buff = new byte [1024];
       int len = 0;
       while ((len = in.read(buff)) != -1) {
           out.write(buff, 0, len);
       }
       out.flush();
       in.close();
 
    }
}
 
 
压缩文件的下载
protected void Press(HttpServletRequest request,
           HttpServletResponse response) throws ServletException, IOException {
       // String filename = request.getParameter("filename");
       String path = this .getServletContext().getRealPath( "/" ); // 获取当前tomcat路劲
       response.setContentType( "application/zip" );
       File file = new File(path + "//Web-inf//" + "SCSJ004-jSP-SERVLET.pdf" ); // 文件路劲
       InputStream in = new FileInputStream(file);
       response.addHeader( "Content-Disposition" , "attachment;filename="
              + "z.zip" ); // 给文件名字
//     response.setContentLength((int)(file.length())); // 给文件长度
       OutputStream out = response.getOutputStream();
       ZipOutputStream zout = new ZipOutputStream(out);
       zout.putNextEntry( new ZipEntry( "SCSJ004-jSP-SERVLET.pdf" ));
       byte [] buff = new byte [1024];
       int len = 0;
       while ((len = in.read(buff)) != -1) {
           zout.write(buff, 0, len);
       }
       zout.flush();
       in.close();
       File file1 = new File(path + "//Web-inf//" + "oracle.txt" );
       InputStream in1 = new FileInputStream(file1);
       zout.putNextEntry( new ZipEntry( "oracle.txt" ));
       byte [] buff1 = new byte [1024];
       int len1 = 0;
       while ((len1 = in1.read(buff1)) != -1) {
           zout.write(buff1, 0, len1);
       }
       zout.flush();
       in1.close();
       zout.close();
    }
}
 
会话
Session 用来记录 用户信息 
不要过量使用,大量数据放到Session
 
<%@taglib 标签 
“/Web-INF/ 下放着
<%@taglib uri= “标签所在路劲”
 
 
 
request.setCharacterEncoding( "UTF-8" ); // 解决乱码取出来时候使用 UTF-8 解决中日韩 问题
 
 
request.getSession().setAttribute("user", dto); // 使用 session() 存取判断用户
UserDTO dto = (UserDTO) request.getSession().getAttribute( "user" );
       if (dto == null ) {
           RequestDispatcher rs1 = request
           .getRequestDispatcher( "login.jsp" );
           rs1.forward(request, response);
           return ;
       }
 
 
request.getRequestDispatcher() 是请求转发,前后页面共享一个request
response.sendRedirect() 是重新定向 前后页面不是一个request
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值