又一本springmvc学习指南 之---第22篇 springmvc 加载.xml文件的bean标签的过程

writedby 张艳涛,今天看spring mvc 学习指南的第2章,特意提下这个作者是how tomcat works 俩个作者之一,

喜欢上一本书的风格,使用案例来讲述原理,

在做第一个案例的时候发现了一些问题在此记录一下,

问题1,el表达式失效

解决方法1,在jsp页面加上<%@page isELIgnored="false"%>,因为在jsp2.0之前的规范不支持el表达式

<%@page isELIgnored="false"%>
<!DOCTYPE html>
<html>
<head>
<title>Save Product</title>
<style type="text/css">@import url(css/main.css);</style>
</head>
<body>
<div id="global">
    <h4>The product has been saved.</h4>
    <p>
        <h5>Details:</h5>
        Product Name: ${product.name}<br/>
        Description: ${product.description}<br/>
        Price: $${product.price}
    </p>
</div>
</body>
</html>

方法2, 在web.xml的<web-app>标签内加入版本信息

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

 <web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
  <servlet>
    <servlet-name>ControllerServlet</servlet-name>
    <servlet-class>appdesign1.controller.ControllerServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>ControllerServlet</servlet-name>
    <url-pattern>/appdesign1/*</url-pattern>
  </servlet-mapping>
</web-app>

我做这个例子的时候是将他的webapp文件方法里tomcat的webapps目录下面的.作为tomcat的一个工程

这里遇到几个问题

  1. 每次tomcat编译新的class文件,org.apache.tomcat.xxx.xxx目录下的.properties文件都消失了?怎么回事
  2. 如果调试webpp,在idea中,如何添加web应用的源码
  3. 为什么eclipse不用添加web.xml来配置接入的ControllerServlet.class,
  4. 如果eclipse打包,生成的webapp.war中会有web.xml文件吗?

解答

问题1, idea的有针对这个的选项

问题2:将源码文件比如说原书中对应的源码在src/目录下面那么将src下面的文件拷贝到ida src/main/java/目录下就行了

问题3.这个不是eclipse的原因是serlvet3.0的特性支持,你在tomcat4中还不支持

@WebServlet(name = "ControllerServlet", urlPatterns = {
        "/input-product", "/save-product" })

这个注解就是对应了servlet标签

  <servlet>
    <servlet-name>ControllerServlet</servlet-name>
    <servlet-class>appdesign1.controller.ControllerServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>ControllerServlet</servlet-name>
    <url-pattern>/appdesign1/*</url-pattern>
  </servlet-mapping>

颜色相同的定义是一样的

比如你在tomcat4.0上这个注解是变红的

问题4,和问题3是一回事,你自己有web.xml,打包就有,没有不会给你生成,

 

posted @ 2021-07-24 18:14  张艳涛&java  阅读(127)  评论(0编辑  收藏  举报