JSP(JavaServet Pages)是Sun公司于上个世纪末(1999年)推出的一种动态网页技术。JSP技术和ASP技术非常类似,JSP在传统的静态网页文件(.htm,.html)中插入Java代码段和JSP标签(tag),从而形成了JSP文件(*.jsp)。 在JSP页面中可以使用由Java语言编写的标签和Java代码来封装产生动态网页的处理逻辑。这种标签的语法类似于XML,在运行JSP时
Jython的一个主要特性是它能够在JDK中使用Swing GUI库。 标准Python发行版(通常称为CPython)附带了Tkinter GUI library 。 其他GUI库如PyQt和WxPython也可以与它一起使用,但swing库提供了一个独立于平台的GUI工具包。 与在Java中使用它相比,在Jython中使用swing库要容易得多。 在Java中,必须使用匿名类来创建事件绑定。
Java servlet是使用最广泛的Web开发技术。 我们可以使用Jython编写servlet,除了Java提供的功能外,还增加了许多优点,因为现在我们也可以使用Python语言功能。 我们将使用NetBeans IDE开发带有Jython servlet的Java Web应用程序。 确保在NetBeans安装中安装了nbPython plugin 。 通过选择以下路径启动新项目以构建Web应
过滤器是用于拦截应用程序的HTTP请求和响应的对象。 通过使用过滤器,我们可以在两个实例上执行两个操作 - 在将请求发送到控制器之前 在向客户发送响应之前。 以下代码显示了带有@Component批注的Servlet Filter实现类的示例代码。 @Component public class SimpleFilter implements Filter { @Override pu
Servlet 基础教程
本书是《Java Servlet 3.1 规范》的中文翻译,同时提供了大量 Servlet 3.1 实例,帮助你快速理解 Servlet 3.1 规范。至今为止,Servlet 3.1 是最新的正式版本,Servlet 4.0 仍在草案阶段。
一步一步从无到有写一个 servlet 容器。一开始不会涉及复杂的部分,中间会进行多次重构,直到完成复杂的功能。
这些配置允许你将DispatcherServlet映射到"/"路径(也即覆盖了容器默认Servlet的映射),但依然保留容器默认的Servlet以处理静态资源的请求。这可以通过配置一个URL映射到"/**"的处理器DefaultServletHttpRequestHandler来实现,并且该处理器在其他所有URL映射关系中优先级应该是最低的。 该处理器会将所有请求转发(forward)到默认的Se
在Servlet 3.0以上的环境下,你可以通过编程的方式来配置Servlet容器了。你可以完全放弃web.xml,也可以两种配置方式同时使用。以下是一个注册DispatcherServlet的例子: import org.springframework.web.WebApplicationInitializer; public class MyWebApplicationInitializer
当响应的状态码被设置为错误状态码,并且响应体中没有内容时,Servlet容器通常会渲染一个HTML错误页。若需要定制容器默认提供的错误页,你可以在web.xml中定义一个错误页面<error-page>元素。在Servlet 3规范出来之前,该错误页元素必须被显式指定映射到一个具体的错误码或一个异常类型。从Servlet 3开始,错误页不再需要映射到其他信息了,这意味着,你指定的位置就是对Serv
要使用基于Servlet 3.0的多路传输转换功能,你必须在web.xml中为DispatcherServlet添加一个multipart-config元素,或者通过Servlet编程的方法使用javax.servlet.MultipartConfigElement进行注册,或你自己定制了自己的Servlet类,那你必须使用javax.servlet.annotation.MultipartCon
Web 容器需要本章描述的映射技术去映射客户端请求到 Servlet(该规范2.5以前的版本,使用这些映射技术是作为一个建议而不是要求,允许servlet 容器各有其不同的策略用于映射客户端请求到 servlet)。
servlet 容器必须强制 Web 应用程序和 ServletContext 之间一对一对应的关系。ServletContext 对象提供了一个 servlet 和它的应用程序视图。
Web 服务器可以支持多个逻辑主机共享一个服务器 IP 地址。有时,这种能力被称为“虚拟主机”。这种情况下,每一个逻辑主机必须有它自己的 servlet 上下文或一组 servlet 上下文。servlet 上下文不会在虚拟主机之间共享。 ServletContext 接口的 getVirtualServerName 方法允许访问ServletContext 部署在的逻辑主机的配置名字。该方法必须
每一个部署到容器的 Web 应用都有一个 ServletContext 接口的实例与之关联。在容器分布在多台虚拟机的情况下,每个 JVM 的每个 Web 应用将有一个 ServletContext 实例。 如果容器内的 Servlet 没有部署到 Web 应用中,则隐含的作为“默认” Web 应用的一部分,并有一个默认的 ServletContext 。在分布式的容器中,默认的 ServletCo