前言
一、cookie的作用及cookie的使用??
- 作用:
- 为了方便用户下次访问服务器时,告知服务器用户的信息。
- 可以统计用户一些习惯操作,方便以后给用户更好的体验
- cookie的创建
Cookie cookie = new Cookie("username","张三");
cookie.setPath("/");
cookie.setMaxAge(18);
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
public class test implements Serializable{
public transient String 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.文件上传
FileItemFactory factory= new DisFileItemFactory();
ServletFileUpload upload = new ServletFileUpdate(factory);
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”