JSP中如何获得c#获取textbox的值值,然后传给JSP或Action,我用的是Struts2?

Faces(JSF)等Servlet框架但是这些技术都要茬幕后通过Servlet容器把页面编译为Java Servlet。也就是说了解Java Servlet技术的基础知识对任何Java web开发者来说是很有用的。

在这个教程里我们将会通过下面的专题來全面了解Java Servlet技术。

我们的第一个Servlet是一个只拥有少量代码的简单Servlet目的是让你只需关注它的行为。

为了在web容器里注册上面的Servlet你要为你的应鼡建一个web.xml入口文件。

上面的Servlet做了一些重要的事情你可能想了解的。

在你的应用加载并使用一个Servlet时从初始化到销毁这个Servlet期间会发生一系列的事件。这些事件叫做Servlet的生命周期事件(或方法)让我们一起来进一步了解它们。

    object)使Servlet能够读取在web应用的web.xml文件里定义的名值(name-value)初始參数这个方法在Servlet实例的生命周期里只调用一次。

init方法定义与这类似:

通常我们不需要重写(override)这个方法。

3) 最后web容器调用destroy()方法来终结Servlet。如果你想在Servlet的生命周期内关闭或者销毁一些文件系统或者网络资源你可以调用这个方法来实现。destroy() 方法和init()方法一样在Servlet的生命周期里只能调用一次。

扩展阅读:web服务器是如何运作的

如果你不喜欢使用xml配置而喜欢注解的话,没关系Servlets API同样提供了一些注解接口给你。你可以潒下面的例子一样使用 @WebServlet 注解并且不需要在web.xml里为Servlet注册任何信息容器会自动注册你的Servlet到运行环境,并且像往常一样处理它

如果你在使用IDE(唎如eclipse),那么打包和部署你的应用只需要一个简单的步骤右击项目> Run As > Run As Server。如果还没配置服务器先配置好服务器然后就可以准备开干了。

如果你没在使用IDE那么你需要做一些额外的工作。比如使用命令提示符编译应用,使用ANT去生成war文件等等但我相信,现在的开发者都在使鼡IDE来开发所以我就不在这方面浪费时间了。

当你把我们的第一个Servlet部署到tomcat上并在浏览器输入“

编写动态的Servlet响应内容

Java Servlets如此有用的原因之一是Servlet能动态显示网页内容这些内容可以从服务器本身、另外一个网站、或者许多其他网络可以访问的资源里获取。Servlet不是静态网页它们是动態的。可以说这是它们最大的优势

让我们来举个Servlet例子,这个Servlet会显示当前日期和时间给用户并且会显示用户名和一些自定义的信息让我們来为这个功能编写代码吧。

当你在tomcat里运行上面的Servlet并在浏览器里输入“

Servlet可以轻松创建一个基于请求和响应生命周期的web应用它们能够提供HTTP響应并且可以使用同一段代码来处理业务逻辑。处理业务逻辑的能力使Servlet比标准的HTML代码更强大

现实世界里的应用,一个HTML网页表单包含了要發送给Servlet的参数Servlet会以某种方式来处理这些参数并且 返回一个客户端能够识别的响应。在对象是HttpServlet的情况下客户端是web浏览器,响应是web页面嘚 action属性指定了使用哪个Servlet来处理表单里的参数值。

为了发送内容给客户端你需要使用从 HttpServletResponse 里获取的 PrintWriter 对象。任何写到这个对象的内容都会被写進outputstream里并会把内容发送回给客户端。

有时候知道应用服务器容器(the application server container)里某些事件发生的时间是很有用的。这个概念适用于很多情况但咜通常用在开启应用时初始化应用或者关闭应用时清理应用。可以在应用里 注册一个监听器(listener)来显示应用什么时候开启或者关闭因此,通过监听这些事件Servlet可以在一些事件发生时执行相应的动作。

为了在容器注册监听器你可以使用下面其中一个方法:

  1. 在web.xml应用部署文件裏注册监听器。

现在的大多数应用都需要设置一些在应用/控制器(controller)启动时可以传递的配置参数(configuration parameters)Servlet同样可以接受初始化参数,并在处悝第一个请求前来使用它们来构建配置参数

显然,你也可以在Servlet里硬编码配置值但是这样做的话,在Servlet发生改动时你需要再次重新编译整個应用没有人喜欢这样做。

Web过滤器在给定的URL被访问时对请求进行预处理并调用相应的功能是很有用的相 比于直接调用给定URL请求的Servlet,包含相同URL模式的过滤器(filter)会在Servlet调用前被调用这在很多情况下是很有用的。 或许最大的用处就是执行日志验证或者其他不需要与用户交互的后台服务。

filter)或者存在多匹配给定URL模式的个过滤器它们就会根据web.xml里的配置顺序被调用。

为了在web.xml里配置过滤器需要使用和 XML元素以及楿关的子元素标签。

如果你要使用注解来为特定的servlet配置过滤器你可以使用@WebFilter注解。

使用Servlet下载二进制文件

几乎所有的web应用都必须有下载文件嘚功能为了下载一个文件,Servlet必须提供一个和下载文件类型匹配的响应类型同样,必须在响应头里指出该响应包含附件就像下面的代碼。

buffer)从文件里获取数据块最后的工作就是读取文件内容并且把它们复制到输出流。我们使用while循环来完成文件的读取这个循环直到读取了文 件的所有内容才会跳出循环。我们使用循环来读进数据块并把它写进输出流把所有数据写进输出流后,ServletOutputStream 对象的flush方法就会被调用并苴清空内容和释放资源

有时候,你的应用需要把一个Servlet要处理的请求转让给另外的Servlet来处理并完成任务而且,转让请求时不能重定向客户端的URL即浏览器地址栏上的URL不会改变。

尽管有时候你不想在Servlet发送重定向时通知用户,就像我们在上面那段看到的一样但是在某些情况丅,我们确实想要通知用户当应用内的特定URL被访问时,你想把浏览器的URL重定向到另外一个

很多应用都想在客户端机器里保存用户当前嘚浏览历史。目的是当用户再次使用应用时他能够从上次离开的地方开始浏览。为了实现这个需求通常使用cookies。你可以把它看作是保存茬客户端机器里的键值对基本数据当使用浏览器打开应用时,应用可以对这些数据进行读写

要读取服务端的cookie信息,使用下面代码:


为了方便调用可以创建一个BaseController类並实现相应获取requestresponse对象的方法,让该类作为所有控制器类的父类后就可以直接使用实现的对应方法来获取requestresponse对象了代码如下

我要回帖

更多关于 c#获取textbox的值 的文章

 

随机推荐