相关疑难解决方法(0)

Design Patterns基于Web的应用程序

我正在设计一个简单的基于Web的应用程序.我是这个基于Web的域的新手.我需要您对设计模式的建议,例如如何在Servlet中分配责任,制作新Servlet的标准等.

实际上,我的主页上有很少的实体,并且每个实体都对应于我们添加,编辑和删除等几个选项.之前我每个选项使用一个Servlet,比如Servlet1,用于添加entity1,Servlet2用于编辑entity1等等,这样我们最终得到了大量的servlet.

现在我们正在改变我们的设计.我的问题是你如何选择如何选择servlet的责任.我们是否应该为每个实体安装一个Servlet,它将处理所有选项并将请求转发给服务层.或者我们应该为整个页面都有一个servlet来处理整个页面请求,然后将其转发到相应的服务层?此外,请求对象是否应转发到服务层.

java jsp design-patterns servlets

356
推荐指数
3
解决办法
10万
查看次数

使用Tomcat 7的@WebServlet注释

在我的应用程序中,我有一个servlet,在web.xml中定义如下:

<servlet>
    <display-name>Notification Servlet</display-name>
    <servlet-name>NotificationServlet</servlet-name>
    <servlet-class>com.XXX.servlet.NotificationServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>NotificationServlet</servlet-name>
    <url-pattern>/notification/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

在使用Tomcat 7之后,我想使用@WebServlet将完成这项工作的注释.
这是我做的方式:

@WebServlet( name="NotificationServlet", displayName="Notification Servlet", urlPatterns = {"/notification"}, loadOnStartup=1)
public class NotificationServlet extends HttpServlet {
Run Code Online (Sandbox Code Playgroud)

它不起作用.有人可以告诉我我做错了什么吗?

annotations servlets servlet-3.0 tomcat7

60
推荐指数
2
解决办法
8万
查看次数

ServletContainerInitializer与ServletContextListener

我试图注册使用servletContainerInitializer一个servlet,但它似乎不工作,也许这是我的代码(好心审查),但是我到想知道的区别ServletContainerInitializerServletContextListener,因为使用时follwing代码运行正常ServletContextListener,而不是.

从servlet 3.0规范:

4.4

配置方法(动态添加servlet):

......或者从实施onStartup方法ServletContainerInitializer......

ServletContainerInitializer:

package com.marmoush.javaexamples.nullhaus.servlet;

import java.util.Set;
import javax.servlet.ServletContainerInitializer;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;

public class MyInit implements ServletContainerInitializer {
    public void onStartup(Set<Class<?>> c, ServletContext ctx) throws ServletException {
        System.out.println("hello");
        ServletRegistration reg = ctx.addServlet("q31","com.marmoush.javaexamples.nullhaus.servlet.Q31");
        reg.addMapping("/q31/*");
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试自动注册的servlet:

package com.marmoush.javaexamples.nullhaus.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Q31 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) …
Run Code Online (Sandbox Code Playgroud)

servlets initialization

39
推荐指数
2
解决办法
2万
查看次数

将共享代码和web.xml从WAR项目拆分为常见的JAR项目

我有不同的webapps共享web.xml配置的很大一部分.例如,某些servlet的映射方式对于所有应用程序都是相同的,但有些webapps具有自定义servlet,或者其他过滤器或共享托管bean.

每个webapp都是我IDE中的一个不同项目.我想将web.xml的公共部分重构为"通用"项目,并让所有特定于应用程序的web.xml扩展"通用"web.xml.有没有可能这样做?

web.xml servlets modularity java-ee

3
推荐指数
1
解决办法
1994
查看次数