JavaWeb 之Servlet

来源:互联网 发布:淘宝卖家订单险多少钱 编辑:程序博客网 时间:2024/06/06 07:42

1.Servlet 的编写

 (1)继承HttpServlet   (idea如果没有 就从maven导入javax.servlet.api)

(2)重写doGet() 或者doPost()方法

(3)在web.xml 中注册servlet

2.重写的方法根据需要选择

如果是<a href=""> </a>为get方法传入 就重写doGet方法

表单中method="post"时 就用重写doPost()方法

(Servlet为一个Java类)

3.注册servlet

在web.xml 文件中进行配置

    <servlet>        <servlet-name>Servlet</servlet-name>        <servlet-class>包名.类名</servlet-class>    </servlet>    <servlet-mapping>        <servlet-name>Servlet</servlet-name>        <url-pattern>/包名/类名</url-pattern>    </servlet-mapping>

注:url-pattern标签中 包名前面的斜线必须加  "/" 表示根目录 ,两个servlet-name标签中的值要一样(一般采用类名)

4.让doPost()执行和doGet()一样的操作

在doPost()方法中加入一行代码即可 ,doGet(request,response);

5.servlet路径跳转

(1)jsp跳转servlet

<a href=" 路径"> </a>

相对路径    包名/类名    (如果包名前面有 "/" 即 "/包名/类名"  会出现404错误 因为第一个 / 表示服务器的根目录)

绝对路径    绝对路径可以使用jsp页面的Path变量  path变量表示项目的根目录  <a href="<%=path>/包名/类名"></a>

(2) servlet 跳转jsp

[1]请求重定向方法

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

request.getContextPath()  获取上下文对象  不能直接写*.jsp 因为当前的路径是  包名/类名 ,不在根目录下

[2]服务器内部跳转

request.getRequestDispatcher("/*.jsp").forward(request,response);   "/" 表示根目录 也可以使用"../*.jsp" 父目录下的jsp文件 (相对路径)