JavaWeb基础都是重点吗?变成鱼的脑子了,学了后面忘了前面。 案例一从web工程文件夹下读取文件。与传统文件读取不同,web工程发布到Tomcat以后文件结构发生了改变。正确在web工程中读取资源是利用ServletContext里面的两个方法getResourceAsStream(filename)和getRealPath(path)的方法获取资源在tomcat的磁盘绝对路径。两个方法的区别是getResourceAsStream()返回的是字节流对象,getRealPath()返回的是字符串路径。 第二个案例手动编写一个下载文件的方法。这个案例涉及到的知识很多。 第一,前端页面的文件连接是用get的方式上传把文件名给Servlet。Servlet接收文件名后,又使用ServletContext获得这个文件的MIME类型,用来给浏览器识别。 第二,通过ServletContext的getRealPath得到文件的绝对路径。 第三,设置了两个头:头一"Content-type",后面接一个文件的MIME类型让浏览器识别这个文件类型。头二"Content-Disposition","attachment;url=filename="+filename;告诉要通过下载的方式获得这个文件 第四,输出文件到用户的浏览器中。使用字节流的形式来操作文件。输入流可以从ServletContext的getResourceAsStream(filename)方法来获得,输出流是response的输出流OutputStream()输出流 第五,有了输入流和输出流,把输入流转换成文件流。建立一个字节数组byte[1024] ,利用while()循环读到结束。 第六,解决中文乱码问题。不论是post方法或是get方法传送都会产生中文乱码问题。在参考资料中有服务端的编码问题处理。这里要将的是当把文件传给浏览器的时候, 浏览器也识别不了中文名字文件。要获取浏览器的类型,然后火狐浏览器用Base64编码处理,其他浏览器用URLEnconder编码处理 总结,这个案例学习了ServletContext里面的两个功能:获取文件的MIME类型;获取文件的绝对路径。 案例三是写一个注册功能。比较重要的是Servlet->UserService->DAO这三个层次的数据操作。登录成功:设置头"Location"重定向到index.jsp页面;登录失败的话,因为要设置提示信息,所以利用ServletContext的setAttribute()方法把信息设置到里面,前提是,要先在初始化函数init()中先设置一个空的msg。在jsp页面中获取ServletContext的方式是${msg}。 注册功能是查询数据库有没有存在该实体类,没有存在就表示成功,然后再把这个实体类User插入进去。另外,要把用户昵称,和网站人数传给index.jsp的话,使用域对象ServletContext存取数据。JSP文件再获取。 上面三个案例使用ServletContext域对象的三个功能。ServletContext域对象是服务器在启动的时候,就开辟了一块空间,只要服务器不关闭,这个空间就一直存在,存的数据也可以随时拿来用或者更新。ServletContext有四个功能 1.获取初始化参数。很少用。 2.获取文件的MIME类型 3.获取文件的绝对路径。 4.当作域对象为所有Servlet和JSP共享数据。是重点 第四学习的是request这个对象。有两个重点,一是request当作域对象存取数据。二是request重定向和转发的区别。 首先request的生命周期是用户请求的时候创建,当响应完毕后结束。重定向是先响应一个空白,再做一次请求,最后响应定位到新的页面,所以是两次请求两次响应,request域对象在重定向中就不起作用了,不要尝试往里面存取数据。转发是request.Redict("servlet的路径"),地址栏不的地址不发生改变。request还存在,可以传数据给新的servlet。 第五,上自习课学习了Tomcat处理web工程的流程: 浏览器根据前端传来的地址,首先找到web工程的web.xml配置文件,前端的Servlet虚拟路径/aa,和web.xml中的url-pattern匹配,通过servlet-name找到了要访问的Servlet,其中Tomcat利用反射获取了<servlet-class>Servlet字节码文件。最后把封装的reuqest数据给了Servlet. |
JavaWeb(三)【webday03_request&response总结】
最新推荐文章于 2022-02-28 12:56:37 发布
本文深入讲解了JavaWeb开发中的三个核心案例:正确读取Web工程中的资源文件、实现文件下载功能及解决中文乱码问题、设计注册功能并与数据库交互。同时介绍了ServletContext对象的功能及其重要用途,并对比了request对象在转发和重定向中的表现。
摘要由CSDN通过智能技术生成