public MappedServlet toMappedServlet(Servlet servlet) {
WebServlet wsAnnotation = servlet.getClass().getAnnotation(WebServlet.class);
if (wsAnnotation == null) {
throw new IllegalArgumentException(
"Servlet contains no @WebServlet annotation and can not be mapped directly. Wrap it in a MappedServlet instead.");
}
String name = wsAnnotation.name() != null && wsAnnotation.name().length() > 0 ? wsAnnotation.name() : null;
Set<String> urlPatterns = new HashSet<>(asList(wsAnnotation.urlPatterns()));
Map<String, String> initParams = new HashMap<>();
WebInitParam[] paramsArray = wsAnnotation.initParams();
if (paramsArray != null) {
asList(paramsArray).forEach(p -> initParams.put(p.name(), p.value()));
}
return new MappedServlet(servlet, urlPatterns, name, initParams);
}
java类javax.servlet.annotation.WebServlet的实例源码
MappedServletFactory.java 文件源码
项目:bootique-jetty
阅读 27
收藏 0
点赞 0
评论 0
JeeComponentsBeanFactoryPostProcessor.java 文件源码
项目:spring-boot-jee-web-example
阅读 39
收藏 0
点赞 0
评论 0
private void registerJeeComponents(ConfigurableListableBeanFactory beanFactory, ClassLoader cl,
Set<BeanDefinition> candiates) {
for (BeanDefinition bd : candiates) {
try {
Class<?> beanClass = ClassUtils.forName(bd.getBeanClassName(), cl);
WebServlet webServlet = beanClass.getDeclaredAnnotation(WebServlet.class);
WebFilter webFilter = beanClass.getDeclaredAnnotation(WebFilter.class);
WebListener webListener = beanClass.getDeclaredAnnotation(WebListener.class);
DefaultListableBeanFactory targetBeanFactory = (DefaultListableBeanFactory) beanFactory;
if (webServlet != null) {
createAndRegisterServletBean(targetBeanFactory, bd, beanClass, webServlet);
} else if (webFilter != null) {
createAndRegisterServletFilterBean(targetBeanFactory, bd, beanClass, webFilter);
} else if (webListener != null) {
createAndRegisterWebListenerBean(targetBeanFactory, bd, beanClass, webListener);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
Router.java 文件源码
项目:servletplus
阅读 38
收藏 0
点赞 0
评论 0
public String getBasePath() {
WebServlet webServlet = this.servlet.getClass().getAnnotation(WebServlet.class);
String path = null;
if (webServlet.value().length > 0 ) {
path = webServlet.value()[0];
}
if(webServlet.urlPatterns().length>0){
path = webServlet.urlPatterns()[0];
}
if(null == path) {
return null;
}
if (!path.endsWith("/*")) {
return "";
} else {
return path.substring(0, path.length() - 2);
}
}
WebServletInstaller.java 文件源码
项目:dropwizard-guicey
阅读 37
收藏 0
点赞 0
评论 0
@Override
public void install(final Environment environment, final HttpServlet instance) {
final Class<? extends HttpServlet> extType = FeatureUtils.getInstanceClass(instance);
final WebServlet annotation = FeatureUtils.getAnnotation(extType, WebServlet.class);
final String[] patterns = annotation.urlPatterns().length > 0 ? annotation.urlPatterns() : annotation.value();
Preconditions.checkArgument(patterns.length > 0,
"Servlet %s not specified url pattern for mapping", extType.getName());
final AdminContext context = FeatureUtils.getAnnotation(extType, AdminContext.class);
final String name = WebUtils.getServletName(annotation, extType);
reporter.line("%-15s %-5s %-2s (%s) %s", Joiner.on(",").join(patterns),
WebUtils.getAsyncMarker(annotation), WebUtils.getContextMarkers(context), extType.getName(), name);
if (WebUtils.isForMain(context)) {
configure(environment.servlets(), instance, extType, name, annotation);
}
if (WebUtils.isForAdmin(context)) {
configure(environment.admin(), instance, extType, name, annotation);
}
}
WebServletInstaller.java 文件源码
项目:dropwizard-guicey
阅读 29
收藏 0
点赞 0
评论 0
private void configure(final ServletEnvironment environment, final HttpServlet servlet,
final Class<? extends HttpServlet> type, final String name, final WebServlet annotation) {
final ServletRegistration.Dynamic mapping = environment.addServlet(name, servlet);
final Set<String> clash = mapping
.addMapping(annotation.urlPatterns().length > 0 ? annotation.urlPatterns() : annotation.value());
if (clash != null && !clash.isEmpty()) {
final String msg = String.format(
"Servlet registration %s clash with already installed servlets on paths: %s",
type.getSimpleName(), Joiner.on(',').join(clash));
if (option(DenyServletRegistrationWithClash)) {
throw new IllegalStateException(msg);
} else {
logger.warn(msg);
}
}
if (annotation.initParams().length > 0) {
for (WebInitParam param : annotation.initParams()) {
mapping.setInitParameter(param.name(), param.value());
}
}
mapping.setAsyncSupported(annotation.asyncSupported());
}
AbstractHttpServlet.java 文件源码
项目:leopard
阅读 29
收藏 0
点赞 0
评论 0
protected void printServletInfo() {
Class<?> clazz = this.getClass();
WebServlet servlet = clazz.getAnnotation(WebServlet.class);
if (servlet == null) {
return;
}
String name = servlet.name();
String uri = StringUtils.arrayToDelimitedString(servlet.urlPatterns(), ",");
System.err.println("WebServlet name:" + name + "\turi:" + uri + "\tclass:" + clazz.getName());
}
PolyguiceApp.java 文件源码
项目:polyguice
阅读 30
收藏 0
点赞 0
评论 0
private List<Class<?>> findServletTypes() {
ReflectionsHelper.registerUrlTypes();
Reflections reflections = new Reflections(scanPkgNames.toArray());
Set<Class<?>> types = reflections.getTypesAnnotatedWith(WebServlet.class);
List<Class<?>> result = new ArrayList<>();
for(Class<?> type : types) {
if(Servlet.class.isAssignableFrom(type)) {
result.add(type);
}
}
return result;
}
FrontAndChats_IntegrationTest.java 文件源码
项目:live-chat-engine
阅读 31
收藏 0
点赞 0
评论 0
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void addServletWithMapping(ServletHandler sh, Class type){
WebServlet annotation = (WebServlet)type.getAnnotation(WebServlet.class);
String[] paths = annotation.value();
for (String path : paths) {
sh.addServletWithMapping(type, path);
}
}
JeeComponentsBeanFactoryPostProcessor.java 文件源码
项目:spring-boot-jee-web-example
阅读 34
收藏 0
点赞 0
评论 0
private void createAndRegisterServletBean(DefaultListableBeanFactory defaultListeableBeanFactory, BeanDefinition bd,
Class<?> beanClass, WebServlet webServlet) {
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ServletRegistrationBean.class);
builder.addPropertyValue("servlet", bd);
builder.addPropertyValue("urlMappings", new LinkedHashSet<>(Arrays.asList(webServlet.urlPatterns())));
String beanName = webServlet.name().isEmpty() ? StringUtils.uncapitalize(beanClass.getSimpleName()) : webServlet
.name();
defaultListeableBeanFactory.registerBeanDefinition(beanName, builder.getBeanDefinition());
}
EvoHttpServletRequest.java 文件源码
项目:evosuite
阅读 31
收藏 0
点赞 0
评论 0
@EvoSuiteAssertionOnly
@Override
public boolean isAsyncSupported() {
Servlet sut = EvoServletState.getServlet();
WebServlet annotation = sut.getClass().getAnnotation(WebServlet.class);
if(annotation == null){
return false; //TODO: unsure if really correct. need more investigation
}
return annotation.asyncSupported();
}
OurServletContext.java 文件源码
项目:osgi.ee
阅读 42
收藏 0
点赞 0
评论 0
private String addServlet(Servlet servlet) {
Class<?> clz = servlet.getClass();
WebServlet ann = clz.getAnnotation(WebServlet.class);
if (ann == null) {
return null;
}
String name = ann.name();
DynamicSRegistration reg = addServlet(name, servlet);
if (reg == null) {
return null;
}
doParameters(reg, ann.initParams());
reg.addMapping(ann.urlPatterns());
return name;
}
Listener.java 文件源码
项目:restful-and-beyond-tut2184
阅读 37
收藏 0
点赞 0
评论 0
@PostConstruct
public void init() {
logger.info("Starting undertow w/ resteasy support.");
WebServlet resteasyServlet = new WebServletLiteral("RestEasy",new String[]{"/"},
new WebInitParam[]{},true,1);
Map<String,Object> servletContextParams = new HashMap<>();
servletContextParams.put(ResteasyDeployment.class.getName(), createDeployment());
undertowComponent = new UndertowComponent(httpListenPort,httpListenAddress,contextRoot,deploymentName)
.addServlet(resteasyServlet,HttpServlet30Dispatcher.class)
.setWebSocketEndpoint(CourseServer.class)
.addListener(RequestScopedServletRequestListener.class)
.start(servletContextParams);
logger.info("Container up and running on port "+httpListenPort);
}
SecureServer.java 文件源码
项目:restful-and-beyond-tut2184
阅读 37
收藏 0
点赞 0
评论 0
public void startUndertow(@Observes ApplicationStartupEvent applicationStartupEvent) {
WebServlet resteasyServlet = new WebServletLiteral("RestEasy",new String[]{"/"},
new WebInitParam[]{},true,1);
Map<String,Object> servletContextParams = new HashMap<>();
servletContextParams.put(ResteasyDeployment.class.getName(), createDeployment());
undertowComponent = new UndertowComponent(undertowBindPort,undertowBindAddress,contextRoot,deploymentName)
.addServlet(resteasyServlet,HttpServlet30Dispatcher.class)
.addListener(RequestScopedServletRequestListener.class)
.start(servletContextParams);
}
UndertowRestDeployer.java 文件源码
项目:restful-and-beyond-tut2184
阅读 34
收藏 0
点赞 0
评论 0
public void startUndertow(@Observes ApplicationStartupEvent applicationStartupEvent) {
WebServlet resteasyServlet = new WebServletLiteral("RestEasy",new String[]{"/"},
new WebInitParam[]{},true,1);
Map<String,Object> servletContextParams = new HashMap<>();
servletContextParams.put(ResteasyDeployment.class.getName(), createDeployment());
undertowComponent = new UndertowComponent(undertowBindPort,undertowBindAddress,contextRoot,deploymentName)
.addServlet(resteasyServlet,HttpServlet30Dispatcher.class)
.addListener(RequestScopedServletRequestListener.class)
.start(servletContextParams);
}
StartWebServer.java 文件源码
项目:hammock
阅读 35
收藏 0
点赞 0
评论 0
private void procesServlets() {
Consumer<Class<? extends HttpServlet>> c = servlet -> {
WebServlet webServlet = ClassUtils.getAnnotation(servlet, WebServlet.class);
if(webServlet != null) {
ServletDescriptor servletDescriptor = new ServletDescriptor(webServlet.name(),
webServlet.value(), mapUrls(webServlet.urlPatterns()), webServlet.loadOnStartup(),
webServlet.initParams(),webServlet.asyncSupported(),servlet);
webServer.addServlet(servletDescriptor);
}
};
extension.processServlets(c);
}
WebServletHandler.java 文件源码
项目:pebble-spring-boot-starter
阅读 29
收藏 0
点赞 0
评论 0
WebServletHandler() {
super(WebServlet.class);
}
WebServletHandler.java 文件源码
项目:https-github.com-g0t4-jenkins2-course-spring-boot
阅读 29
收藏 0
点赞 0
评论 0
WebServletHandler() {
super(WebServlet.class);
}
WebServletHandler.java 文件源码
项目:spring-boot-concourse
阅读 32
收藏 0
点赞 0
评论 0
WebServletHandler() {
super(WebServlet.class);
}
WebServletHandler.java 文件源码
项目:contestparser
阅读 30
收藏 0
点赞 0
评论 0
WebServletHandler() {
super(WebServlet.class);
}
WebServletInstaller.java 文件源码
项目:dropwizard-guicey
阅读 34
收藏 0
点赞 0
评论 0
@Override
public boolean matches(final Class<?> type) {
return FeatureUtils.is(type, HttpServlet.class)
&& FeatureUtils.hasAnnotation(type, WebServlet.class);
}
UndertowComponent.java 文件源码
项目:restful-and-beyond-tut2184
阅读 32
收藏 0
点赞 0
评论 0
public UndertowComponent addServlet(WebServlet webServlet, Class<? extends Servlet> clazz) {
servlets.put(webServlet,clazz);
return this;
}
UndertowServletDeployer.java 文件源码
项目:restful-and-beyond-tut2184
阅读 32
收藏 0
点赞 0
评论 0
public void startUndertow(@Observes ApplicationStartupEvent applicationStartupEvent) {
WebServlet webServlet = GreeterServlet.class.getAnnotation(WebServlet.class);
undertowComponent = new UndertowComponent(undertowBindPort,undertowBindAddress,contextRoot,deploymentName)
.addServlet(webServlet,GreeterServlet.class).start();
}
WebServerExtension.java 文件源码
项目:hammock
阅读 33
收藏 0
点赞 0
评论 0
public void findServlets(@Observes @WithAnnotations({WebServlet.class})
ProcessAnnotatedType<? extends HttpServlet> pat) {
servlets.add(pat.getAnnotatedType().getJavaClass());
}
WebServer.java 文件源码
项目:lightmare
阅读 33
收藏 0
点赞 0
评论 0
@Override
public void run() {
try {
Server jettyServer = new Server(HTTP_SERVER_PORT);
ContextHandlerCollection contexts = new ContextHandlerCollection();
jettyServer.setHandler(contexts);
ServletContextHandler ctxRest = new ServletContextHandler(contexts, "/rest",
ServletContextHandler.SESSIONS);
ServletContainer container = new ServletContainer();
ServletHolder restHolder = new ServletHolder();
Map<String, String> inits = new HashMap<String, String>();
inits.put(APPLICATION_PARAM_NAME, RestConfig.class.getName());
restHolder.setInitParameters(inits);
restHolder.setInitOrder(1);
restHolder.setServlet(container);
ctxRest.addServlet(restHolder, "/*");
WebServlet webServlet = DeployManager.class.getAnnotation(WebServlet.class);
String deployManagerName = CollectionUtils.getFirst(webServlet.value());
ServletContextHandler ctxManager = new ServletContextHandler(contexts, deployManagerName,
ServletContextHandler.SESSIONS);
DeployManager deploy = new DeployManager();
ServletHolder managerHolder = new ServletHolder();
managerHolder.setServlet(deploy);
ctxManager.addServlet(managerHolder, "/*");
ServletContextHandler ctxPerson = new ServletContextHandler(contexts, "/persons",
ServletContextHandler.SESSIONS);
ctxPerson.addEventListener(new LoaderListener());
PersonManager manager = new PersonManager();
ServletHolder personHolder = new ServletHolder();
personHolder.setServlet(manager);
ctxPerson.addServlet(personHolder, "/*");
contexts.setHandlers(new Handler[] { ctxRest, ctxManager, ctxPerson });
jettyServer.start();
jettyServer.join();
} catch (Exception ex) {
LOG.error("Error while starting jetty server", ex);
}
}
XControllerTools.java 文件源码
项目:XTools-Server
阅读 28
收藏 0
点赞 0
评论 0
/**
* 获取Api的路径
*
* @param apiClass XController的class对象
* @return api的路径
*/
public static String apiPath(Class<? extends XController<?>> apiClass) {
return apiClass.getAnnotation(WebServlet.class).urlPatterns()[0];
}
DataFormsServlet.java 文件源码
项目:dataforms
阅读 29
收藏 0
点赞 0
评论 0
/**
* Pageの拡張子を取得します。
* <pre>
* Servletアノテーションの先頭のURLパターンから、拡張子を取得します。
* </pre>
* @return Pageの拡張子。
*/
public String getPageExt() {
WebServlet an = this.getClass().getAnnotation(WebServlet.class);
String[] uplist = an.urlPatterns();
return uplist[0].substring(2);
}
WebUtils.java 文件源码
项目:dropwizard-guicey
阅读 30
收藏 0
点赞 0
评论 0
/**
* @param servlet servlet annotation
* @param type servlet type
* @return servlet name or generated name if name not provided
*/
public static String getServletName(final WebServlet servlet, final Class<? extends HttpServlet> type) {
final String name = Strings.emptyToNull(servlet.name());
return name != null ? name : generateName(type, "servlet");
}
WebUtils.java 文件源码
项目:dropwizard-guicey
阅读 38
收藏 0
点赞 0
评论 0
/**
* @param annotation servlet registration annotation
* @return "async" string if servlet support async and empty string otherwise
*/
public static String getAsyncMarker(final WebServlet annotation) {
return getAsyncMarker(annotation.asyncSupported());
}