1.3Servlet学习——Servlet的配置、数据请求、转发和重定向

时间:2023-02-01 19:03:32

在web.xml中配置Servlet如下:

  <servlet>
  	<servlet-name>ServletTest</servlet-name>
  	<servlet-class>com.servlet.ServletTest</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>ServletTest</servlet-name>
  	<url-pattern>/test</url-pattern>
  </servlet-mapping>

其中<servlet>节点表示的是配置servlet,<servlet-name>表示的是要配置的servlet的名字,<servlet-class>表示的是要配置的servlet的包路径+类名。

<servlet-mapping>节点是用于匹配<servlet>节点的,当<servlet-name>节点和<servlet>中的名字相同时就匹配成功。<url-partten>节点用于写servlet类的虚拟路径。

当从浏览器通过虚拟路径访问的时候,就可以找到要找的servlet名字,在通过名字找到所在的类,以此实现对servlet的访问。

两种常见的数据请求方式:

超链接方式: <a href = "./test">测试</a>

当然超链接里面也是可以携带数据的 :<a href = "./test?name=张三&age=10">测试2</a>

表单方式:

<form method="post" action = "./ServletTest2">
<input name = "name" value="aaa"/><br/>
<input name = "age" value="123"/><br/>
<input name = "info1" value="111"/><br/>
<input name = "info2" value="222"/><br/>
<input name = "info2" value="333"/><br/>
<input type="submit"/>

</form>

重定向:

重定向是指由原请求重新定位到新地址,原来的请求失效,客户端看到的是新请求返回的响应结果。重新请求的行为有客户端自动发起。由于是客户端的重新请求,所以重定向可以指向其他站点。浏览器地址栏会刷新为新的请求地址。重定向后,原来请求中存放的属性会丢失。当所有代码执行完毕才会执行重定向,也就是重定向之后的代码也会执行。

response.sendRedirect(request.getContextPath()+"/test.jsp");

请求转发:

请求转发是将请求转发到其他地址,转发过程中使用的是同一个请求。转发只能转发给同一个web应用中的组件。转发后浏览器地址栏不变。转发后,原来请求中存放的属性不会丢失。当所有代码执行完毕才会执行转发,也就是转发之后的代码也会执行。

request.getRequestDispatcher("/test2.jsp").forward(request, response);