黄进安:
1. 读取WEB工程下的文件 l 使用ServletContext对象,调用getResourceAsStream(Stringpath);根据提供路径读取文件返回一个文件的输入流,在调用properties对象的方法load(获得的输入流) 从输入流中读取属性列表(键和元素对),在调用properties对象的getProperty(String key)用指定的键在此属性列表中搜索属性 l 使用ServletContext对象, getRealPath(Stringpath); 返回一个路径的磁盘绝对路径.在根据路径获得文件输入流,其余同上 2. ServletContext的作用 l 读取全局初始化参数. l 获得文件的MIME的类型. l 作为域对象存取数据. l 读取web项目下的文件 3. 文件下载案例 在下载页面的HTML文件中,下载的超链接如下 <a href="/webdemo03/ServletDown?filename=hello.jnt">hello.jnt</a> l ?之后的红色部分相当于点超链接之后,将红色部分的键值对信息请求到浏览器根据指定的url访问web.xml配置文件中对应的.class对象,此class对象继承了HttpServlet类就可以根据请求方式调用server方法,处理浏览器的请求和给予浏览器的响应 l 在servlet对文件进行下载操作步骤: 1) 获得请求参数: eg. request.getParameter("filename");--->得到值(文件名) 2) 获得文件类型: getServletContext().getMimeType(文件名);--->type 3) 设置Content-Type头: response.setHeader("Content-Type", type); 4) 设置Content-Disposition头: response.setHeader("Content-Disposition","attachment;filename="+filename); 5) 获得文件的输入流:InputStream.(ServletContext的两种方法获取) 6) 获得response的输出流: response.getOutputStream(); 7) 利用输入流读取文件,利用响应输出流输出文件 4. 注册页面案例 l 跟昨天的登入案例差不多,只要在添加用户信息之前对用户名进行判断是否已经存在数据库即可 l 存在时: 1) 调用request对象的setAttribute(String name,String value);用来存储对jsp页面中的信息,eg: 用户名已存在 2) 利用转发返回注册页面重新注册(路径相对于服务器而言,可以不写项目名) request.getRequestDispatcher("/demo02/regist.jsp").forward(req,resp); 用户名可用时: 1) 往数据库插入用户注册的相关信息即可 2) 利用重定向到登入页面 response.sendRedirect("/webdemo03/demo02/enter.jsp");
|