Java web-servlet学习(一)

最近在学servlet,就总结一下(用的IDE是MyEclipse,服务器软件是TomCat):


      在我看来servlet就是一个接口,他的父类是HttpServlet,而我们用servlet主要是重写servlet类中的doGet()和doPost()方法,而这两个方法的形参一样都有两个即HttpServletRequest类型的request参数和HttpServletResponse类型的reponse,网页前端发送一个request请求到相应的servlet中如果你是get()请求就交由doGet()方法来处理,post请求就交由doPost()来处理,servlet你可以创建多个所以你就可以处理不同页面的请求了。当然每当你写好了一个servlet或者修改了一个servlet之后你都必须在tomcat服务器上重新发布你的工程,才能正常访问。所以说一个servlet的完整过程就是四步:1.创建,2.编码,3.发布,4.访问,但这四步每一步都有需要注意的地方,下面一步步讲解:

一.创建

       创建servlet之后,我们首先要知道如何用浏览器访问我们的servlet,这就要借助url,url=主机路径+项目名+servlet在项目中的路径。


       MyEclipse会在WEB-INF下自动写出web.xml,这个文档中主要是记录你的servlet和其对应的在项目中的路径,如下:

  <servlet>
    <servlet-name>loginservlet</servlet-name>
    <servlet-class>servlet.loginservlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>loginservlet</servlet-name>
    <url-pattern>/servlet/loginservlet</url-pattern>
  </servlet-mapping>

     所以对于loginservlet这个servlet来说他的url就是localhost://8080/项目名/servlet/loginservlet,当然你在web.xml中改动你的servlet的<url-pattern>你访问的路径也会跟着改变,每次修改并保存web.xml都会让项目重新自动发布到服务器上,但是如果动了servlet的java代码就需要重新手动的发布在服务器上。

  二.编码

     servlet主要是和前端网页相连,在servlet中用PrintWriter类来写向前端输出的html等前端语言:

PrintWriter out=response .getWriter();
out.println("<body>");
out.println("</body>");

    其次在编码时servlet获取请求参数是必须要了解的,这就需要了解HttpServletRequest接口下的getParameter(String name)方法,这里面的name举个例子就是在html中表单中的name。

     中文乱码问题也是在编码中常见的问题,就像out.println("")中如果写的是中文就会在前端的页面引起乱码输出,原因就是没有正确的配置,这个时候就在PrintWriter out=response.getWriter()前加上response.setCharacterEncoding("gbk");就可以解决servlet输出乱码问题了。

     servlet的请求转发,在处理浏览器请求时,经常需要多个servlet协作完成,如何将一个servlet转发到另一个servlet需要用到javax.servlet包下的RequestDispatcher接口,getRequestDispatcher(String path)方法返回一个RequestDispatcher对象,他的参数path指的就是要转发的servlet的url,这个方法只是获取到一个RequestDispatcher对象,并未实现真正的转发,要转发还需要用到RequestDispatcher对象的forword()方法,他的参数是request和response。

      servlet的重定向,重定向可以分为两类,一是服务器间的页面跳转和跨服务器间的页面跳转,要实现重定向就需要用到HttpServletResponse对象的sendRedirect(String localtion)方法,当然这里面的localtion就是要跳转的path。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值