JavaWeb第三章


前言


一、cookie的作用及cookie的使用??

  • 作用:
  • 为了方便用户下次访问服务器时,告知服务器用户的信息。
  • 可以统计用户一些习惯操作,方便以后给用户更好的体验
  • cookie的创建
Cookie cookie = new Cookie("username","张三");
cookie.setPath("/");
cookie.setMaxAge(18);//18秒后cookie消失
response.addCookie(cookie);

二、Servlet

1.servlet就是一个java类,只不过它可以处理页面的请求,和响应。

2.Servlet部署

    <servlet>
        <servlet-name>PageIndexController</servlet-name>
        <servlet-class>com.csi.controller.product.PageIndexController</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>PageIndexController</servlet-name>
        <url-pattern>/PageIndexController</url-pattern>
    </servlet-mapping>

3.Servlet架构

  • GenericServlet抽象类实现Servlet和ServletConfig接口的一部分方法,service()方法交给了GnericServlet的子类HttpServlet来实现

4.获取session、application对象

HttpSession session=request.getSession();
ServletContext application =  request.getServletContext();

5.transient Serializable

//使用tranisent关键字定义的变量,不能序列化
public class test implements Serializable{
	public transient String jishi;
	//jishi这个变量就不能序列化
}

6.Servlet特点

  • 单例,支持多线程,所以有可能会导致线程并发问题
  • 通过把变量写在方法里,尽量避免在方法外声明变量

servlet部署

<servlet>
	<servlet-name>PageController</servlet-name>
	<servlet-class>com.csi.controller.PageController</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>PageController</servlet-name>
	<url-pattern>/PageController</url-pattern>
</servlet-mapping>

7.文件上传

//先创建FileyItemFactory对象
FileItemFactory factory= new DisFileItemFactory();
//创建工厂机器ServletFileUpload
ServletFileUpload upload = new ServletFileUpdate(factory);
//对request对象进行解析
List<FileItem> fileItems = upload.parseRequest(request);
UserInfo userInfo = new UserInfo();
for(FileItem fileItem:fileItems){
if(fileItem.isFormField()){
    if("".equals(fileItem.getFileName())){
    userIfo.setUsername(fileItem.getString())
    }
  }else{
      //建立文件上传的目录
      String realFile=request.getServletContext().getRealPath("/");
      File realDir= new File(realFile)
      if(!realDir.exists()){
         realDir.mkdirs();
      }
      //获取文件的姓名
      String fileName = request.getName();
      //获取文件的拓展名
      String extName = fileName.substring(fileName.lastIndexOf("/"));
      //给文件重新取文件名
      String newName= UUID.randomUUID().toString()+extName;
      File uploadFile = new File(realFile,newName)
      fileItem.write(uploadFile);
      userInfo.setHeadPhone("upload/"+newName);
  }
}
  • request.getName();获取文件名称
  • request.getFiledName():获取表单对应name的值
  • request.getString();获取FileItem属性对应的值
  • request.getContentType();获取文件类型
  • fileItem.isFormField();//判断是否是普通字段,如果是true,否则false

总结

  • 在表单中必须表明请求方式method=“post”,声明编码方式enctype=“multipart/form-data”
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值