GVKun编程网logo

关于 jsp 的 action 如何调用 servlet 的自定义方法(jsp中调用servlet)

15

如果您想了解关于jsp的action如何调用servlet的自定义方法和jsp中调用servlet的知识,那么本篇文章将是您的不二之选。我们将深入剖析关于jsp的action如何调用servlet的自

如果您想了解关于 jsp 的 action 如何调用 servlet 的自定义方法jsp中调用servlet的知识,那么本篇文章将是您的不二之选。我们将深入剖析关于 jsp 的 action 如何调用 servlet 的自定义方法的各个方面,并为您解答jsp中调用servlet的疑在这篇文章中,我们将为您介绍关于 jsp 的 action 如何调用 servlet 的自定义方法的相关知识,同时也会详细的解释jsp中调用servlet的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

关于 jsp 的 action 如何调用 servlet 的自定义方法(jsp中调用servlet)

关于 jsp 的 action 如何调用 servlet 的自定义方法(jsp中调用servlet)

一、起因:
  
希望将同属于某个模块的简单功能整合到一起,不创建太多的servlet
二、问题描述:
  action或者method属性是否能直接调用自定义方法
三、补充知识点:  
  查询得知:servelet只是处理发送页面发送的请求的,一般只用doGet()和doPost()方法
四、解决方法:

  思路:利用隐藏的参数判断调用哪个方法

  1. 在请求页面加一个隐藏域     <input type="hidden" name = " 请求页面的名字 "/>     
  2. servelet 获取 name 值,根据 name 值决定该调用哪个方法或者如何处理请求  

 

 

asp.net-mvc-3 – 自定义ActionInvoker与MVC 3中ActionFilter依赖注入的自定义FilterProvider

asp.net-mvc-3 – 自定义ActionInvoker与MVC 3中ActionFilter依赖注入的自定义FilterProvider

任何人都可以了解使用自定义ActionInvoker like so在自定义ActionFilters上执行依赖注入的优缺点,而不是使用自定义FilterProvider as demonstrated here?

在这两种情况下,您仍然希望避免在ActionFilters上进行构造函数注入,对我来说,似乎所有自定义FilterProvider在这种情况下都会增加额外的开销,即必须在容器中注册ActionFilters和提供程序.

解决方法

过滤器提供程序的一大优势是,如果正确完成,它允许构造函数注入.您链接的示例未正确演示.要使用构造函数注入,您不能使用过滤器属性.相反,您必须将要应用过滤器的声明(例如,使用属性)和过滤器实现分开.

我不确定Unity是否有一个很好的实现.请参阅http://www.planetgeek.ch/2010/11/13/official-ninject-mvc-extension-gets-support-for-mvc3/,感觉如何.但这是一个Ninject的例子.可能你可以在github上实现它的实现并将它移植到Unity.

http-500:Servlet.init() for servlet SpringDispatcherServlet threw exception

http-500:Servlet.init() for servlet SpringDispatcherServlet threw exception

在使用solr与spring一起后,配置完再去访问,总是找不到controller。很愁,找不到原因,愿大神指点一二,感激。。。

controller层

package com.lxy.main;

import com.lxy.entity.ResultModel;
import com.lxy.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * Created by BlingBlingBling on 2017/8/18.
 */
@Controller
@RequestMapping("/product")
public class ProductController {

    @Autowired
    private ProductService service;

    @RequestMapping("/list")
    public String list(String querything, String catalog_name,
                       String price, String sort,
                       Integer page, Model model) throws Exception{

        ResultModel rm = service.getProducts(querything, catalog_name, price, sort, page);

        //将查询结果防到request作用域
        model.addAttribute("result",rm);

        //简单类型的数据回显
        model.addAttribute("querything",querything);
        model.addAttribute("catalog_name",catalog_name);
        model.addAttribute("price",price);
        model.addAttribute("sort",sort);
        model.addAttribute("page",page);

        return  "product_list";
    }

}

service

package com.lxy.service;

import com.lxy.entity.ResultModel;

/**
 * Created by BlingBlingBling on 2017/8/18.
 */
public interface ProductService {
    public ResultModel getProducts(String querything,String catalogName,String price,String sort,Integer page) throws Exception;
}

serviceImpl

package com.lxy.service.impl;

import com.lxy.entity.Products;
import com.lxy.entity.ResultModel;
import com.lxy.service.ProductService;
import org.apache.commons.lang.StringUtils;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * Created by BlingBlingBling on 2017/8/18.
 */
@Service
public class ProductServiceImpl implements ProductService{

    @Autowired
    //依赖注入server
    private HttpSolrServer server;

    @Override
    public ResultModel getProducts(String querything, String catalogName, String price, String sort, Integer page) throws Exception {

        //创建SolrQuery对象
        SolrQuery query = new SolrQuery();

        //输入关键字
        if(StringUtils.isNotEmpty(querything)){
            query.setQuery(querything);
        }else{
            query.setQuery("*:*");
        }

        //输入商品分类过滤条件
        if(StringUtils.isNotEmpty(catalogName)){
            query.addFilterQuery("product_catalog_name:"+catalogName);
        }

        // 输入价格区间过滤条件
        // price的值:0-9 10-19
        if (StringUtils.isNotEmpty(price)) {
            String[] ss = price.split("-");
            if (ss.length == 2) {
                query.addFilterQuery("product_price:[" + ss[0] + " TO " + ss[1]
                        + "]");
            }
        }

        // 设置排序
        if ("1".equals(sort)) {
            query.setSort("product_price", SolrQuery.ORDER.desc);
        } else {
            query.setSort("product_price", SolrQuery.ORDER.asc);
        }

        // 设置分页信息
        if (page == null)
            page = 1;

        query.setStart((page - 1) * 20);
        query.setRows(20);

        // 设置默认域
        query.set("df", "product_keywords");

        // 设置高亮信息
        query.setHighlight(true);
        query.addHighlightField("product_name");
        query.setHighlightSimplePre("<font style=\"color:red\" >");
        query.setHighlightSimplePost("</font>");

        QueryResponse response = server.query(query);
        // 查询出的结果
        SolrDocumentList results = response.getResults();
        // 记录总数
        long count = results.getNumFound();

        List<Products> products = new ArrayList<>();
        Products prod;

        // 获取高亮信息
        Map<String, Map<String, List<String>>> highlighting = response
                .getHighlighting();
        for (SolrDocument doc : results) {
            prod = new Products();

            // 商品ID
            prod.setPid(Integer.parseInt(doc.get("id").toString()));

            List<String> list = highlighting.get(doc.get("id")).get(
                    "product_name");
            // 商品名称
            if (list != null)
                prod.setName(list.get(0));
            else {
                prod.setName(doc.get("product_name").toString());
            }

            // 商品价格
            prod.setPrice(Integer.parseInt(doc.get("product_price").toString()));
            // 商品图片地址
            prod.setPicture(doc.get("product_picture").toString());

            products.add(prod);
        }

        // 封装ResultModel对象
        ResultModel rm = new ResultModel();
        rm.setProductList(products);
        rm.setCurPage(page);
        rm.setRecordCount(count);

        int pageCount = (int) (count / 20);

        if (count % 20 > 0)
            pageCount++;
        // 设置总页数
        rm.setPageCount(pageCount);

        return rm;
    }
}

spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx"
   xmlns:aop="http://www.springframework.org/schema/aop"
   xmlns:mvc="http://www.springframework.org/schema/mvc"
   xmlns:p="http://www.springframework.org/schema/p"
   xmlns:util="http://www.springframework.org/schema/util"
   xmlns:jdbc="http://www.springframework.org/schema/jdbc"
   xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
      http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
      http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
   
   <!-- 扫描service,mapper包 -->
   <!--<context:component-scan base-package="com.lxy"></context:component-scan>-->
   
   <!-- 引入配置文件 -->
   <!--<bean id="propertyConfigurer"
>
      <property name="location" value="classpath:jdbc.properties" />
   </bean>-->
   
   <!-- 创建数据源(数据库连接池使用DBCP) -->
   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
      <!--<property name="driverClassName" value="${driver}"></property>
      <property name="url" value="${url}"></property>
      <property name="username" value="${username}"></property>
      <property name="password" value="${password}"></property>-->
   </bean>
   
   <!-- MyBatis -->   
   <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
   <!--<bean id="sqlSessionFactory">
      <property name="dataSource" ref="dataSource" />
   </bean>-->
   
   <!-- Mapper接口所在包名,Spring会自动查找其下的类 -->
   <!--<bean>
      <property name="basePackage" value="com.lxy.mapper" />
      <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
   </bean>-->
   
   <!-- spring -->
   <!-- 配置事务 -->
   <bean id="transactionManager"
      class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
      <property name="dataSource" ref="dataSource" />
   </bean>
   
   <!-- 开启事务控制的注解支持 -->  
    <tx:annotation-driven transaction-manager="transactionManager"/>
   
</beans>

spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx"
   xmlns:aop="http://www.springframework.org/schema/aop"
   xmlns:mvc="http://www.springframework.org/schema/mvc"
   xmlns:p="http://www.springframework.org/schema/p"
   xmlns:util="http://www.springframework.org/schema/util"
   xmlns:jdbc="http://www.springframework.org/schema/jdbc"
   xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
      http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
      http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
   
   <!-- 扫描controller -->
   <context:component-scan base-package="com.lxy.main"></context:component-scan>
   
   <!-- 配置返回页面 -->
   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/jsp/" />
      <property name="suffix" value=".jsp" />
   </bean>


   <!-- 配置HttpSolrServer -->
   <bean class="org.apache.solr.client.solrj.impl.HttpSolrServer">
      <constructor-arg value="http://localhost:8080/solr/"></constructor-arg>
   </bean>
   
</beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

    <!-- 配置springMVC的核心控制器  Start-->
    <!-- spring MVC DispatcherServlet -->
    <servlet>
        <servlet-name>SpringDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>SpringDispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!-- 配置springMVC的核心控制器  End-->

    <!-- 配置spring  Start-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!-- 配置spring  End-->

    <!-- 过滤器 -->
    <filter>
        <filter-name>EncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>EncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!-- 欢迎页面 -->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

</web-app>
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''productController'': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.lxy.service.ProductService com.lxy.main.ProductController.service; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.lxy.service.ProductService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
	org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292)
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
	org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
	org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
	org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
	org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
	org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700)
	org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
	org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
	org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:643)
	org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:606)
	org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:657)
	org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:525)
	org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:466)
	org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
	javax.servlet.GenericServlet.init(GenericServlet.java:160)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	java.lang.Thread.run(Thread.java:745)

 

root cause

org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.lxy.service.ProductService com.lxy.main.ProductController.service; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.lxy.service.ProductService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
	org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:508)
	org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
	org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289)
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
	org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
	org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
	org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
	org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
	org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700)
	org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
	org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
	org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:643)
	org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:606)
	org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:657)
	org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:525)
	org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:466)
	org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
	javax.servlet.GenericServlet.init(GenericServlet.java:160)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	java.lang.Thread.run(Thread.java:745)

 

报错信息

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.lxy.service.ProductService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
	org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1100)
	org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:960)
	org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:855)
	org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:480)
	org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
	org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289)
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
	org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
	org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
	org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
	org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
	org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700)
	org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
	org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
	org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:643)
	org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:606)
	org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:657)
	org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:525)
	org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:466)
	org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
	javax.servlet.GenericServlet.init(GenericServlet.java:160)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	java.lang.Thread.run(Thread.java:745)

这是代码,辛苦各位大神看一下,帮帮忙,谢谢!

IllegalArgumentException:名为[com.staff.servlet.AllocationServlet]和[com.staff.servlet.SearchConditionServlet]的servlet都被映射[重复]

IllegalArgumentException:名为[com.staff.servlet.AllocationServlet]和[com.staff.servlet.SearchConditionServlet]的servlet都被映射[重复]

当我尝试执行项目时,即使没有项目在运行,我也总是会收到此错误。我想摆脱这个问题。请帮帮我。解决方案是什么?我的控制台说

    Nov 27, 2013 8:54:38 PM org.apache.catalina.core.AprLifecycleListener init    INFO: The APR based Apache Tomcat Native library which allows optimal performance  in production environments was not found on the java.library.path: C:\Program Files   (x86)\Java\jdk1.6.0_24\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Prog ram Files (x86)/Java/jdk1.6.0_24/bin/../jre/bin/client;C:/Program Files  (x86)/Java/jdk1.6.0_24/bin/../jre/bin;C:/Program Files  (x86)/Java/jdk1.6.0_24/bin/../jre/lib/i386;C:\Program Files  (x86)\Java\jdk1.6.0_24\bin;C:\Program Files (x86)\PC Connectivity  Solution\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\Windo        wsPowerShell\v1.0\;;C:\Program Files (x86)\Samsung\Samsung PC Studio 3\;c:\Program  Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL  Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files  (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;c:\Program Files  (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;c:\Program Files  (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\MySQL\MySQL Server  5.5\bin;C:\Program Files (x86)\QuickTime\QTSystem\    Nov 27, 2013 8:54:38 PM org.apache.tomcat.util.digester.SetPropertiesRule begin    WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property  ''source'' to ''org.eclipse.jst.jee.server:staffs'' did not find a matching property.    Nov 27, 2013 8:54:38 PM org.apache.coyote.AbstractProtocol init    INFO: Initializing ProtocolHandler ["http-bio-8080"]    Nov 27, 2013 8:54:38 PM org.apache.coyote.AbstractProtocol init    INFO: Initializing ProtocolHandler ["ajp-bio-8009"]    Nov 27, 2013 8:54:38 PM org.apache.catalina.startup.Catalina load    INFO: Initialization processed in 753 ms    Nov 27, 2013 8:54:38 PM org.apache.catalina.core.StandardService startInternal    INFO: Starting service Catalina    Nov 27, 2013 8:54:38 PM org.apache.catalina.core.StandardEngine startInternal    INFO: Starting Servlet Engine: Apache Tomcat/7.0.42    Nov 27, 2013 8:54:39 PM org.apache.catalina.loader.WebappClassLoader  validateJarFile    INFO:  validateJarFile(C:\Users\Ramya\workspace1\.metadata\.plugins\org.eclipse.wst.server.core\tm p0\wtpwebapps\staffs\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3,  section 9.7.2. Offending class: javax/servlet/Servlet.class    Nov 27, 2013 8:54:39 PM org.apache.catalina.core.ContainerBase startInternal    SEVERE: A child container failed during start    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:  Failed to start component  [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/staffs]]at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)at java.util.concurrent.FutureTask.get(FutureTask.java:83)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)at java.util.concurrent.FutureTask.run(FutureTask.java:138)at  java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)    Caused by: org.apache.catalina.LifecycleException: Failed to start component  [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/staffs]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)... 7 more    Caused by: java.lang.IllegalArgumentException: The servlets named   [com.staff.servlet.AllocationServlet] and [com.staff.servlet.SearchConditionServlet] are  both mapped to the url-pattern [/AllocationServlet] which is not permittedat org.apache.catalina.deploy.WebXml.addServletMapping(WebXml.java:335)at  org.apache.catalina.startup.ContextConfig.processAnnotationWebServlet(ContextConfig.java:24 50)at  org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2132)at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2093)at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2086)at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2086)at  org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2086)at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1293)at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 7 more    Nov 27, 2013 8:54:39 PM org.apache.catalina.core.ContainerBase startInternal    SEVERE: A child container failed during start    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:     Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)at java.util.concurrent.FutureTask.get(FutureTask.java:83)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.startup.Catalina.start(Catalina.java:691)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at       sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)    Caused by: org.apache.catalina.LifecycleException: Failed to start component  [StandardEngine[Catalina].StandardHost[localhost]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)at java.util.concurrent.FutureTask.run(FutureTask.java:138)at     java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)at java.lang.Thread.run(Thread.java:662)    Caused by: org.apache.catalina.LifecycleException: A child container failed during  startat org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 7 more    Nov 27, 2013 8:54:39 PM org.apache.catalina.startup.Catalina start    SEVERE: The required Server component failed to start so Tomcat is unable to start.    org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)at org.apache.catalina.startup.Catalina.start(Catalina.java:691)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at  sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)    Caused by: org.apache.catalina.LifecycleException: Failed to start component  [StandardService[Catalina]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 7 more    Caused by: org.apache.catalina.LifecycleException: Failed to start component  [StandardEngine[Catalina]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 9 more    Caused by: org.apache.catalina.LifecycleException: A child container failed during startat org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)    ... 11 more    Nov 27, 2013 8:54:39 PM org.apache.coyote.AbstractProtocol pause    INFO: Pausing ProtocolHandler ["http-bio-8080"]    Nov 27, 2013 8:54:39 PM org.apache.coyote.AbstractProtocol pause    INFO: Pausing ProtocolHandler ["ajp-bio-8009"]    Nov 27, 2013 8:54:39 PM org.apache.catalina.core.StandardService stopInternal    INFO: Stopping service Catalina    Nov 27, 2013 8:54:39 PM org.apache.coyote.AbstractProtocol destroy    INFO: Destroying ProtocolHandler ["http-bio-8080"]    Nov 27, 2013 8:54:39 PM org.apache.coyote.AbstractProtocol destroy    INFO: Destroying ProtocolHandler ["ajp-bio-8009"]

解决方案是什么?

答案1

小编典典

例外是不言自明的

看来您的两个servlet分别是

  1. 分配Servlet
  2. SearchConditionServlet

两者都映射到相同的url-pattern AllocationServlet

您需要修复servlet的web.xml或注解(在Servlet3.0的情况下),并确保没有两个servlet映射到相同的url模式。

java.lang.ClassNotFoundException:org.apache.jasper.servlet.JspServlet

java.lang.ClassNotFoundException:org.apache.jasper.servlet.JspServlet

如何解决java.lang.ClassNotFoundException:org.apache.jasper.servlet.JspServlet?

我正在尝试通过tomcat在服务器上运行Java应用程序,但我一直收到此错误消息。我尝试将正确的依赖项添加到pom.xml文件中,但似乎无法正常工作。我正在尝试使用heroku部署此应用程序。

这是我pom.xml文件中的依赖项:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

,这是完整的错误消息:

    WARNING: A context path must either be an empty string or start with a ''/'' and do not end with a ''/''. The path [/] does not meet these criteria and has been changed to []
configuring app with basedir: /Users/nicobeard/Documents/falling-knives-capstone/Backend/./src/main/webapp
Sep 12,2020 3:17:02 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Sep 12,2020 3:17:02 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 12,2020 3:17:02 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Tomcat]
Sep 12,2020 3:17:02 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.5.23
Sep 12,2020 3:17:02 PM org.apache.catalina.startup.ContextConfig getDefaultWebXmlFragment
INFO: No global web.xml found
Sep 12,2020 3:17:02 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet [jsp] as unavailable
Sep 12,2020 3:17:02 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet [jsp] in web application [] threw load() exception
java.lang.classNotFoundException: org.apache.jasper.servlet.JspServlet
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1291)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
        at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:512)
        at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:493)
        at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:119)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1050)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:989)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4931)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5241)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase$startChild.call(ContainerBase.java:1419)
        at org.apache.catalina.core.ContainerBase$startChild.call(ContainerBase.java:1409)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Sep 12,2020 3:17:02 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

关于关于 jsp 的 action 如何调用 servlet 的自定义方法jsp中调用servlet的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于asp.net-mvc-3 – 自定义ActionInvoker与MVC 3中ActionFilter依赖注入的自定义FilterProvider、http-500:Servlet.init() for servlet SpringDispatcherServlet threw exception、IllegalArgumentException:名为[com.staff.servlet.AllocationServlet]和[com.staff.servlet.SearchConditionServlet]的servlet都被映射[重复]、java.lang.ClassNotFoundException:org.apache.jasper.servlet.JspServlet等相关知识的信息别忘了在本站进行查找喔。

本文标签: