精华内容
下载资源
问答
  • 一、编写servlet1.编写servlet我么需要继承HttpServlet(一个java类,提供了servlet的接口方法)public class HelloServlet extends HttpServlet2.HttpServlet提供了:init():初始化服務器, doget()&&dopost...

    一、编写servlet

    1.编写servlet我么需要继承HttpServlet(一个java类,提供了servlet的接口方法)

    public class HelloServlet extends HttpServlet

    2.HttpServlet提供了:init():初始化服務器, doget()&&dopost():处理请求的方法,destroy():销毁的方法。

    public class HelloServlet extendsHttpServlet {/***

    * 1.servlet 的初始化方式init()方法的执行

    * a.在用户第一次发起请求的时候执行init()方法。方法只会执行一次

    * b.在web.xml文件中配置1,init()方法会在服务器

    * 启动的时候执行。load-on-startup 的值为0-9的任意值,值的大小不具备任何含义,只有值本身有一定

    * 的语义.表示如果配置了值就是在服务器启动的时候执行init()方法.init()方法同样的只会执行一次.

    * c.在服务器启动的时候执行init()方法,并且进行参数的传递,那么执行的是init()的方法重载.

    */@Overridepublic void init() throwsServletException {

    System.out.println("init");

    }/*** get方式请求*/@Overrideprotected voiddoGet(HttpServletRequest req, HttpServletResponse resp)throwsServletException, IOException {

    System.out.println("do get");//返回页面的方法

    req.getRequestDispatcher("main.jsp").forward(req, resp);

    }/*** post方式请求*/@Overrideprotected voiddoPost(HttpServletRequest req, HttpServletResponse resp)throwsServletException, IOException {

    System.out.println("do post");//返回页面的方法

    req.getRequestDispatcher("main.jsp").forward(req, resp);

    }/*** 销毁服务*/@Overridepublic voiddestroy() {

    System.out.println("destroy");

    }

    }

    3.配置web.xml文件:是连接页面和服务器端之间的桥梁

    hello

    com.hgd.servlet.HelloServlet

    hello

    /hello

    4.编写页面的请求:见index.jsp

    Stringpath=request.getContextPath();StringbasePath=request.getScheme()+ "://"

    +request.getServerName()+ ":" +request.getServerPort()+path+ "/";%>

    ">

    My JSP 'index.jsp' starting page

    servlet页面的写法

    这是一个超链接


    doget


    dopost

    5.编写返回页面

    可以编写java代码=后面的内容表示输出到页面

    --%>

    //request:是内置对象,不需要声明的可以直接使用Objectobj=request.getAttribute("msg");if(obj != null) {%>

    6.在doget或dopost方法中编写指定返回页面

    //返回页面的方法

    req.getRequestDispatcher("main.jsp").forward(req, resp);

    二、servlet的声明周期

    当用户从视图层发起一个request请求,那么这个请求将通过web.xml文件,来进行比对 ,如果请求的url

    能被通过。那么将通过web.xml文件中的这个节点找到对应的servlet如果请求方式是

    get那么将执行doget方法,请求方式是 post那么将执行dopost方法,在用户第一次请求的时候执行init

    方法,在服务器关闭的时候 执行destroy方法,如果在web.xml文件中配置了

    0,那么init方法将在服务器启动的时候执行,当init()

    方法和init(ServletConfig config)同时被重写的 时候,将会调用init(ServletConfig config)

    方法。这个方法可以在服务器初始化的时候进行参数的传入。

    三、servlet执行流程

    1.用户从页面发起一个请求

    2.请求通过web.xml文件找到对应的url-pattern,根据servlet-name的text值找到对应的servlet

    -class,通过反射来创建servlet对象,如果请求是get方式,那么将执行doget(),

    如果请求是post方式,那么将执行dopost()方法。

    3.在执行目标方法后通过req.getRequestDispatcher("main.jsp").forward(req, resp);返回给用户对应的页面

    四、实例

    1.web.xml

    user

    com.hgd.servlet.UserServlet

    user

    /user

    2.login.jsp

    doget

    可以编写java代码=后面的内容表示输出到页面

    --%>

    //request:是内置对象,不需要声明的可以直接使用Objectobj=request.getAttribute("msg");if(obj != null) {%>


    dopost

    3.main.jsp

    可以编写java代码=后面的内容表示输出到页面

    --%>

    //request:是内置对象,不需要声明的可以直接使用Objectobj=request.getAttribute("msg");if(obj != null) {%>

    4.UserServlet.Java

    /***

    * 1.页面的请求可以有两中写法 form表单 a超链接

    * 2.超链的写法

    * 详细见index.jsp

    * 3.get和post请求方式的区别:

    * 详细见index.jsp

    * 4.request传值:

    * 页面和服务器端之间的数据传输是通过HttpServletRequest这个对象来完成

    * 4.1:从页面向服务端传输数据

    * 页面传来的数据格式为 key=value

    * 可以在目标方法中通过getParameter(key),来获取到页面传递的数据,默认的

    * 都是String类型

    * 超链传递参数可以将参数直接加入到url上面hello?user=admin&pwd=123

    * 4.2:服务器端向页面传递参数

    * 通过HttpServletRequest对象进行传递

    * 通过request.setAttribute(key,value)方法,在页面可以通过

    * request.getAttribute(key)方法来获取值,传递值的类型是Object,在

    * 获取到数据后需要进行数据类型转换

    * 详细包含index.jsp和main.jsp

    ***/

    public class UserServlet extendsHttpServlet {

    @Overridepublic void init() throwsServletException {

    System.out.println("init");

    }

    @Overrideprotected voiddoGet(HttpServletRequest req, HttpServletResponse resp)throwsServletException, IOException {

    System.out.println("doGet");//获取页面传输过来的数据:默认的都是字符串

    String username=req.getParameter("user");

    String password=req.getParameter("pwd");

    System.out.println("doget:"+username+password);

    String result= "";//登陆是否成功的返回提示

    if ("admin".equals(username) && "123".equals(password)) {

    result= "你的账号密码正确的,可以可以访问";

    req.setAttribute("msg", result);//服务器端向页面传递参数

    req.getRequestDispatcher("main.jsp").forward(req, resp);

    }else{

    result= "你的账号密码不对,你不可以访问";

    req.setAttribute("msg", result);//服务器端向页面传递参数

    req.getRequestDispatcher("login.jsp").forward(req, resp);

    }

    }

    @Overrideprotected voiddoPost(HttpServletRequest req, HttpServletResponse resp)throwsServletException, IOException {

    System.out.println("doPost");

    }

    @Overridepublic voiddestroy() {

    System.out.println("destroy");

    }

    }

    展开全文
  • 1. backend servlet package com.tian.liferay.portlet.documentlibrary.service; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; import j

    1. backend servlet


    package com.tian.liferay.portlet.documentlibrary.service;
    
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.URL;
    import java.net.URLConnection;
    import java.net.URLEncoder;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.liferay.portal.kernel.struts.BaseStrutsAction;
    import com.liferay.portal.kernel.util.ParamUtil;
    
    public class DLDownloadUrlLocalService extends BaseStrutsAction {
    	public String execute(HttpServletRequest request,
    			HttpServletResponse response) throws Exception {
    		String fileUrl = ParamUtil.getString(request, "url");
    		String title = ParamUtil.getString(request, "title");
    		String extension = ParamUtil.getString(request, "extension");
    
    		String fileName = "";
    		int index = title.lastIndexOf(".") + 1;
    		if (index > 0
    				&& title.substring(index, title.length()).equals(extension))
    			fileName = title;
    		else
    			fileName = title + "." + extension;
    
    		OutputStream os = null;
    		InputStream in = null;
    		try {
    			URL url = new URL(fileUrl);
    			in = url.openStream();
    
    			os = response.getOutputStream();
    			
    			String userAgent = request.getHeader("User-Agent");
    			
    			String contentType = URLConnection.guessContentTypeFromStream(in);
    			response.setContentType(contentType);
    			response.setCharacterEncoding("UTF-8");
    			
    		
    			// but IE 6 doesnot support.
    			if (userAgent != null && userAgent.indexOf("MSIE") != -1) {
    				fileName = URLEncoder.encode(fileName, "UTF-8");
    				fileName = fileName.replaceAll("\\+", "%20");
    				response.setHeader("Content-disposition","attachement;filename=" + fileName);
    			} else {
                	response.setHeader("Content-disposition", "attachement;filename="
                            + "\""+new String(fileName.getBytes("UTF-8"),"iso8859-1") + "\"" );
                }
    			
    			response.setHeader("Cache-Control", "no-cache");
    			response.setHeader("Expires", "0");
    			response.setHeader("Cache-Control",
    					"must-revalidat&e, post-check=0, pre-check=0");
    			// FileCopyUtils.copy(in, response.getOutputStream());
    			byte temp[] = new byte[1000];
    			int n = 0;
    			while ((n = in.read(temp)) != -1) {
    				os.write(temp, 0, n);
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			if (os != null)
    				os.close();
    			if (in != null)
    				in.close();
    		}
    		return null;
    	}
    
    }
    




    2. front end code 

    var imageurl = '/c/document_library/download_url?url=<%= DLUtil.getPreviewURL(fileEntry, fileVersion, themeDisplay, StringPool.BLANK) %>&title=<%=title %>&extension=<%= extension %>';
    							window.open(encodeURI(imageurl),'_self');



    展开全文
  • servlet></servlet>和<servlet-mapping></servlet-mapping> <?xml version="1.0" encoding="UTF-8"?> <web-app> <display-name>PerSys</display-nam...

    只需要在web.xml中配置<servlet></servlet>和<servlet-mapping></servlet-mapping>

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app>
      <display-name>PerSys</display-name>
      
      <servlet>
        <servlet-name>PersonEntry</servlet-name>
        <servlet-class>com.jsp.servlet.PersonEntry</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>Login</servlet-name>
        <servlet-class>com.jsp.servlet.Login</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>Register</servlet-name>
        <servlet-class>com.jsp.servlet.Register</servlet-class>
      </servlet>
      
      <servlet-mapping>
        <servlet-name>PersonEntry</servlet-name>
        <url-pattern>/servlet/PersonEntry</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/servlet/Login</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>Register</servlet-name>
        <url-pattern>/servlet/Register</url-pattern>
      </servlet-mapping>

    </web-app>

    展开全文
  • Servlet中的路径写法

    2020-03-13 22:24:27
    本人在学习Servlet过程中老是分不清楚什么时候需要加虚拟目录什么时候不需要,所以把笔记整理写了下来(: 首先复习一遍路径的相关知识: 首先什么是路径 路径分为两种: 绝对路径和相对路径 相对路径:通过相对...

    本人在学习Servlet过程中老是分不清楚什么时候需要加虚拟目录什么时候不需要,所以把笔记整理写了下来(:


    首先复习一遍路径的相关知识:

    首先什么是路径

    路径分为两种:
    绝对路径和相对路径

    相对路径:通过相对路径不可以确定唯一资源

    路径规则:找到当前资源和目标资源之间的相对位置关系。
    例如:
    ./login.html(代表当前目录下的login.html文件)

    ./:当前目录
    …/:后退一级目录

    绝对路径:通过绝对路径可以确定唯一资源

    路径规则:从树型目录结构顶部的根目录开始到某个目录或文件的路径,由一系列连续的目录组成,中间用斜线分隔,直到要指定的目录或文件,路径中的最后一个名称即为要指向的目录或文件。
    例如:
    http://localhost:8080/LoginDemo_war_exploded/login.html

    不以 / 开头,以 . 开头的路径为相对路径
    以 / 开头的路径为绝对路径


    Servlet中路径的使用:

    当客户端浏览器使用用来访问服务器时:则需要加虚拟目录(项目的访问路径)

    比如:

    1 客户端HTML页面的<a href=" "><a>

    2 重定向

    response.sendRedirect("/LoginDemo_war_exploded/responseDemo2");
    
    当给服务器内部使用:不需要加虚拟目录

    如:转发路径
    在这里插入图片描述
    由于路径不建议写死,不然一更改项目虚拟目录路径则代码需要更改。
    所以推荐使用动态获取:
    虚拟目录的动态获取:request.getContextPath()
    在这里插入图片描述

    展开全文
  • Web.xml如果要是多个servlet写法

    千次阅读 2017-11-24 13:16:26
    servlet&gt; &lt;servlet-name&gt;riinly&lt;/servlet-name&gt; &lt;servlet-class&gt;ly.RequestInfo&lt;/servlet-class&gt; &lt;/servlet&gt; &lt;servlet&...
  • websocket+servlet简单案例代码
  • 这次给大家带来js请求servlet实现ajax请求的步骤详解,js请求servlet实现ajax请求的注意事项有哪些,下面就是实战案例,一起来看一下。ajax请求是一种无刷新式的用户体验,可以发送GET和POST两种异步请求,现记录...
  • 项目中,我们有时候使用的java servlet版本不尽相同,特从网上找了不同版本的web.xml写法,以供将来使用。 原文地址:https://www.cnblogs.com/deptop/p/9336252.html   Tomcat 实现了 java Servlet规范、java ...
  • 两种通用Servlet写法以及分析

    千次阅读 2017-01-28 15:27:10
    第一种写法:使用斜杠/ import java.io.IOException; import java.lang.reflect.Method; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet....
  • import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io....
  • Servlet 编写三种方式

    2021-06-13 11:28:45
    文章目录Servlet编写方式1. 第一种:实现Servlet接口,接口中的方法必须全部实现。2. 第二种:继承GenericServlet,3. 第三种:继承HttpServle Servlet编写方式 我们在实现Servlet功能时,可以选择以下三种方式: 1....
  • order.servlet.UserServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UserServlet</servlet-name> <url-pattern>/user</url-pattern> &...
  • import javax.servlet.AsyncContext; import javax.servlet.AsyncEvent; import javax.servlet.AsyncListener; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; ...
  • Servlet异步请求

    2017-03-27 13:32:12
    Tomcat实现异步Servlet有时Servlet在生成响应报文前需要等待某些耗时的操作,例如等待一个可用的JDBC连接或等待一个远程Web服务的响应,因此会导致Servlet中等待阻塞会导致web整体处理能力低下,所以对于比较耗时的...
  • <servlet-class>类的路径 </servlet-class>   </servlet>   <servlet-mapping>   <servlet-name> 必是唯一的名称 </servlet-na ...0?00000000000me>   /访问路径   </...
  • Servlet如何编写以及写Servlet注意事项

    千次阅读 2017-09-09 16:05:05
    1、Servlet:主要用于交互式的浏览和修改数据,生成web内容。 2、过程:一般是网页将数据交给Servlet进行处理,Servlet处理好后便跳转到相应的页面。 3、创建: a:创建一个class然后在web.xml...
  • Servlet通用写法

    2018-12-09 22:41:30
    ###Servlet的通用写法  Servlet (接口)  |  |  GenericServlet  |  |  HttpServlet (用于处理http的请求)   定义一个类,继承HttpServlet 复写doGet 和 doPost ...
  • 完善了开发环境之后,就是编写servlet示例程序了,感受下javaweb的开发。
  • 开发工具是myEclipse,用 Servlet实现文件上传,通过commons-fileupload-1.2.1.jar commons-io-1.4.jar插件实现了文件上传
  • Java Web基础(二)(Servlet编写与配置)

    千次阅读 2016-05-06 17:37:15
    下面的内容都是基础的Servlet知识,如果你想打好基础,就别急着学习JSP,而是从Servlet开始学习。因为JSP页面最终会被转译为Servlet,掌握了Servlet,JSP也就学会了一半,而且在写JSP页面时也能更准确地定位错误。
  • 通用servlet写法

    2018-09-02 14:56:13
    今天我给大家带来的是通用servlet写法 为什么要用通用servlet写法哪,比如一个功能,增删该查各建一个类,但是假如入有N个哪,这样资源会被占用太多,所以这时候通用servlet的作用就出来了,大大的减少类的数量...
  • import javax.servlet.*; import java.io.IOException; public class Filter implements javax.servlet.Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out...
  • jsp中的include动作和include指令能否使用Servlet路径写法?include动作(jsp:include)的page属性支持jsp,html和Servlet路径写法而include指令(@include)的file属性只支持jsp,html这种页面,不支持Servlet路径,也不...
  • 当在servlet里面直接声明urlParrerns时,‘/’代表项目地址下。 比如:项目中的LoginServlet.java,‘/’代表 中声明 那么就以为这我们可以在项目工程目录下,通过user-login访问该资源。 注意: 如果我们直接在...
  • Servlet写登录案例 1.创建动态web工程,在该项目中新建servlet相关包 2.新建servlet,重写service方法,编写代码 3.在web.xml中进行配置 配置如下: &lt;?xml version="1.0" encoding="...
  • 最近学习时,常常要写一些页面之间的跳转或者前台和后端之间的跳转下面总结一下自己对于这些跳转路径的写法声明:以下讲到的jsp文件都默认在WebRoot目录下1、表单(Jsp)->Servlet表单提交数据后,交由Servlet处理...
  • 构建项目时,需要spring...tomcat+jdk+servlet对应关系官网文档地址:http://tomcat.apache.org/whichversion.html当前时间版本关系。 spring+jdk对应关系spring官网下载地址:http://repo.spring.io/release/org/sp...
  • servlet的通用写法

    2019-03-26 13:14:38
    servlet(接口) | | GnericServlet | | HttpServlet(用于处理http的请求) 定义一个类,继承HttpServlet 复写doGet 和 doPost

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,873
精华内容 15,949
关键字:

servlet写法

友情链接: Colorwheel.rar