Java学习-JavaServerPages
JavaServerPages学习
环境搭建
打开idea,创建一个新项目
1 | 选择 “Maven” |
项目创建后等待资源加载,第一次时间较久
出现下图表示加载成功
配置编译路径和artifact
快捷键 ctrl+alt+shift+s
配置tomcat服务器
到 http://tomcat.apache.org 下载对应的版本
在web项目中导入tomcat,点击 idea 右上角的 add configuration
选择 other–tomcatserver–local
配置端口,这里避免端口冲突换成8081,上下保持一致即可
导入tomcat包
fix 添加 war
最终效果
无报错启动成功
访问 http://127.0.0.1:8081/maventest/index.jsp
JSP Servlet实例
- 作用:Servlet定义是容器端小程序,用于直接处理后端业务逻辑
选择 webapp 右键标记为源根
在 webapp
下创建一个 com
文件夹,在 com
文件夹下创建一个 serlvet
文件夹
src->main->webapp->com->Servlet
在serlvet文件夹下新建 HelloServlet.java
1 | package com.Servlet; |
修改 WEB-INF目录下的 web.xml 为如下内容
1 |
|
点击运行报错
选择库,点击添加 servlet-api.jar
通过注解访问文件
通过web.xml访问文件
JSP Filter实例
- Filter也叫过滤器,通常配置在MVC、Servlet和JSP请求前面,常用于后端权限控制
通过注解配置映射关系,直接在GlobalFilter.java完成配置这样就无需在web.xml配置映射了
1 | 参数: urlPatterns |
在 webapp
下创建一个 com
文件夹,在 com
文件夹下创建一个 filter
文件夹
src->main->webapp->com->filter
在serlvet文件夹下新建 GlobalFilter.java
1 | package com.Filter; |
访问任意资源文件,过滤器的doFilter方法被执行
HttpServletRequest常用方法
HttpServletRequest
对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法就可以获取到客户端请求的所有信息
方法 | 说明 |
---|---|
getParameterNames() | 获取所有的参数名 |
getParameter(String name) | 通过参数名获取对应的值,如果有重复的名,则返回第一个的值 |
getParameterValues(String name) | 通过参数名获取指定参数的所有值,返回为String数组 |
getMethod() | 获取请求发送的方式,例如:GET/POST |
getQueryString() | 获取请求的URL地址中附带的参数 |
getRequestURL() | 获取请求的资源 |
getRequestURL().toString() | 获取请求的URL地址 |
getRequestURI() | 获取发出请求字符串的客户端地址 |
getContextPath() | 返回项目的名字,如果项目为根目录,也就是“/”,则返回空 |
getServletPath() | 返回客户端所请求的脚本文件的文件路径 |
getPathInfo() | 返回传递到Servlet的路径,如果没有传递额外的路径信息,则返回NULL |
getRemoteAddr() | 获取客户端的IP地址 |
getRemoteHost() | 获取客户端的名字 |
getRemotePort() | 获取客户端使用的网络端口号 |
getRemoteUser() | 获取发出请求的客户机的完整主机名 |
getLocalAddr() | 获取WEB服务器的IP地址 |
getLocalName() | 获取WEB服务器的主机名 |
setAttribute(String name,Object) | 将数据作为request对象的一个属性存放到request对象中 |
getAttributeNames() | 获取request对象的所有属性名返回为Enumeration |
getAttribute(String name) | 获取request对象的name属性的值 |
removeAttribute(String name) | 移除request对象的name属性 |
getCookies() | 获取客户端的所有Cookie对象返回为Cookie数组 |
getSession() | 获取Session会话对象 |
getHeaderNames() | 获取所有request Header的属性名返回为Enumeration |
getHeader(String name) | 获取指定名字的request Header的所有值 |
getHeaders(String name) | 获取指定名字的request Header的所有值返回为Enumeration |
getContentLength() | 获取请求的Body的长度 |
getCharacterEncoding() | 获取请求中的字符编码方式 |
HttpServletResponse常用方法
HttpServletResponse
对象用于响应客户端的请求,通过这个对象提供的方法就可以处理服务端对客户端请求响应
方法 | 说明 |
---|---|
setContentType(String var1) | 设置当前响应的MIME类型 |
setCharacterEncoding(String var1) | 设置当前响应的字符编码 |
getWriter() | 获取响应打印流对象 |
getOutputStream() | 获取响应流对象 |
addCookie(Cookie var1) | 添加指定的Cookie加入到当前响应中注:遇到同名,依然会进行新增操作 |
addHeader(String name, String value) | 添加指定的名称与值到响应的header头信息中注:遇到同名,依然会进行新增操作 |
setHeader(String var1, String var2) | 设置指定的名称与值到响应的header头信息中注:遇到同名,会进行修改操作 |
sendError(int var1, String var2) | 使用指定状态码与内容发送一个错误到客户端 |
sendRedirect(String var1) | 请求重定向例如:responst.sendRedirect(“index.jsp”);例如:responst.sendRedirect(“http://baidu.com"); |
setStatus(int var1) | 设置状态码,例如:302重定向 304控制缓存 |
addDateHeader(String var1, long var2) | 添加HTTP响应头中的日期,加入对应名称的日期头信息注:遇到同名,依然会进行新增操作 |
setDateHeader(String var1, long var2) | 设置HTTP响应头中的日期,加入对应名称的日期头信息注:遇到同名,依然会进行新增操作 |