JSP学习
Posted ygshen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP学习相关的知识,希望对你有一定的参考价值。
1.项目格式:
IDEA中使用archetypeweb的构建就可以生成的,但是在Apple MAC上貌似不能用。IDEA中手动穿件标准的mvn项目,因为有web-app目录,IDEA会提示是否转成WEB项目选是。这里介绍一下WEB项目的目录结构
src/main/java: 放一些servlet之类的java文件
src/main/web-app/
/jsp、/js、/img
/WEB-INF/web.xml
这里的Web.xml是部署文件,指定一些servlet、listener之类的配置。Servlet例子。访问http://domain/webroot/result.do的地址,get将访问servlet的GET方法。如果在Form 中 result.do的 POST时候将自动定位到POST方法。
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <servlet> <servlet-name>processServlet</servlet-name> <servlet-class>com.mvnbook.account.web.servlet.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>processServlet</servlet-name> <url-pattern>/result.do</url-pattern> </servlet-mapping> </web-app>
2. 相对路径。
<form url=‘result.do‘></form>
标签中url是submit之后的提交地址,相对于当前html的路径。 如: 当前Html的路径是 web-app/html/test.html那么提交后的相对地址就是 http://domain/html/test.do 这种情况下去匹配Web.xm中的 servlet是匹配不上的, 因为上述url-pattern是相对于根的。 所以只能是 account-web/result.do这例 account-web是项目的根目录
3. HttpServletRequest和HttpServletResponse对象
关于Request: request 对象的用于获取前端页面的参数 request.getParameter(‘size‘). 也可以获取多个参数request.getParameters(‘size‘)如复选框。
request还可以用来转发, HttpRequestDispature dispature = request.getRequestDispature(‘/jsp文件的路径‘); dispature.forward(requst,response);
关于response: Response 对象用来获取输出流的同时可以设置一些输出格式如 response.setContentType(‘img/jpeg‘); 同时还可以往输出流中塞一些非Html的内容。同时还可以往Response中添加一些header字段、cookie值、甚至Redirect到的其他地址(这里 redirect是返回302让客户端做跳转)
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //设置输出格式 resp.setContentType("image/jpeg"); //获取输出流 ServletOutputStream out = resp.getOutputStream(); // 读取资源文件 ServletContext sc = getServletContext(); InputStream is = sc.getResourceAsStream("dowload.jpg"); // 向输出流中塞数据 int read =0; byte[] result = new byte[1024]; while ((read=is.read())!=-1){ out.write(result,0,read); } //输出 out.flush(); out.close(); }
以上是关于JSP学习的主要内容,如果未能解决你的问题,请参考以下文章