@Ablechen
2019-07-07T14:43:50.000000Z
字数 7005
阅读 431
servlet只会被初始化一次,后续的请求都是创建一个线程
servlet调用servlet的init()方法进行初始化,进行配置信息的读取,完成数据库的链接等工作
通过ServletConfig对象进行初始化数据的传递Config这一内置对象就是ServletConfig对象的实现类
Servlet被初始化之后就一直存在于内存中,知道服务器重新启动,Servlet对象才会被销毁。
销毁的时候调用destory()方法。
在服务器接受到Http请求的时候,会直接调用Servlet中的service方法,相当于java中的main方法
在创建servlet类中需要的两个包
其中第一个包中主要用来控制servlet的生命周期
第二个包中主要是用来处理于http相关的操作
创建servlet一般是通过进行继承HttpServlet类进行实现的
在进行继承的时候一般是,需要用到哪种功能的时候,就在继承的时候对方法进行重载
在xml中进行配置
<servlet>
<servlet-name>Demo</servlet-name>
<servlet-class>servlet.Demo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Demo</servlet-name>
<url-pattern>/Demo</url-pattern>
</servlet-mapping>
直接使用名字,不加最后的java后缀
需要的组件commons-fileupload和commons-io
- 首先需要判断是否为上传文件,这里需要用到方法isMutipart
- 然后创建文件上传所必需的工厂FileItemFactory
- 然后创建用于解析form的对象,ServletFileUpload对象
ServletFileUpload fileUpload = new ServletFileUpload(fileItemFactory)
- 解析request中的item,找到需要上传的item
item = upload.parseRequest(req).iterator
item.isForField()
- 然后进行需要存储的位置
req.getServletContext.getRealPath()
得到项目路径
- 然后通过item的write方法进行写入