浅入:servlet servletContext HttpServletrequest HttpServletresponse

创建第一个servlet实例:

· 导入servlet的jar包
· 创建一个class类实现HttpServlet
·根据提交方式重写doGet或doPost方法,在内部完成要实现的逻辑

get是显示的URL限制了请求长度,而且有安全隐患,post是隐式提交

在web.xml中配置

<servlet>
<servlet-name>hello实例的文件名</servlet-name>
<servlet-class>全路径</servlet-class>
<load-on-startup>2</load-on-startup>数字越小初始化越早,必须大于1
</servlet>
<servlet-mapping>
<servlet-name>hello实例的文件名</servlet-name>
<url-pattern>/asd实例的虚拟路径</url-pattern>
</servlet-mapping>

配置虚拟路径,/,/a/

ServletContext获取获取全局变量或获取资源文件

在web.xml中配置的全局参数,可以用servlet获取到
在点properties的资源文件配置,也可以用servlet获取到

如何在web的xml文件内配置全局变量::在跟标签外添加标签<context-param>
<param-name>name</param-name>
<param-value>value</param-value>
</context-param>

如何在点properties文件内配置变量::
name=value

创建servlet

获取webxml内的全局变量

创建一个servlet类根据提交方式,选取重写的方法:在方法内调用创建servleContextt对象
再调用context.getInitParameter(“name”)返回值是string类型的

普通方式获取点properties资源文件的内容

先创建一个properties(这个叫属性对象,可以接受properties文件的内容)对象,

Properties properties=new Properties()

然后用properties的对象调用load方法,因为需要传入输入流对象(InputStream)

properties.load(in)

所以就再创建一个InputStream对象,该对象需要读入文件

InputStream in=new FileInputStream(“url”)

用properties对象调用getProperty()方法需要传入String类型的参数,返回值也是string类型的

String n=properties.getProperty(“name”)

这样会出错,报错的原因是找不到properties文件,因为web项目被发布后,路径,并不是按照原本的项目路径,所以需要重新获取路径。 而且要把需要获取的点properties文件放在webContent目录下的新建文件夹内
创建servletContext对象,然后调用getRealPath()需要传入文件所在项目的路径,返回值是String类型的

ServletContext context=getServletContext()
String path=context.getRealPath(“file/web.properties”)
关闭输入流
in.close()

然后就可以了。

用servletContext获取点properties文件的配置内容

先创建Properties对象和servletContext对象

Properties properties=new Properties()
ServletContext context=getServletContext()

然后再调用servletContext对象的getResourceAsStream(“”)需要传入文件在项目中的相对url,返回值是InputStream类型的

InputStream in=context.getResourceAsStream(“file/web.properties”)

关闭输入流

in.close()

用classloader获取点properties文件配置

创建properties对象,

Properties properties=new properties()

用classloader获取资源文件内容

InputStream in=this.getClass().getClassLoader().getResourceAsStream(“../../file/web.properties”)
因为classloader的虚拟路径的参考是在tomcat发布的class路径,其实发布的地址和参考地址有误,需要网上两级才行。

关闭流

in.close(0

HttpServletRequest

获取前端表单提交的数据,

String 是=request.getParameter(“变量名“)

获取前端表单的所有数据

Map<String String[]> map=request.getParameterMap();
Set<String> keyset=map.keyset();
Iterator<String> it=keyset.iterator()
whlie(it.hasNext()){
String key=it.next();
String value=map.get(key);
syso(key+"="+value);}

获取所有表头数据

Enumeration<String> headernames=request.getHeaderNames()
while(headernames.hasMoreElement()){
String headername=headernames.nextElement();
String headervalue=request.getHeader(headername);
syso(headername+"="+headervalue);}

HttpServletResponse

将后端的数据处理显示到前端。

PrintWriter pw=response.getWriter();
pw.print(“想要输出的东西”);
pw.close

以字符流写出数据
>response.getWriter().write("<h1>abc</h1>")标签的作用可以发挥
以字节流写出数据

response.getOutputStream().write(“asdasdasd”.getBytes());

后端控制页面跳转

设置状态码为301,条状状态
resopnse.setStatus(301)
设置跳转的对象和方式
response.setHeader(”Location”,:需要跳转的页面”)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值