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的一个工程
这里遇到几个问题
- 每次tomcat编译新的class文件,org.apache.tomcat.xxx.xxx目录下的.properties文件都消失了?怎么回事
- 如果调试webpp,在idea中,如何添加web应用的源码
- 为什么eclipse不用添加web.xml来配置接入的ControllerServlet.class,
- 如果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,打包就有,没有不会给你生成,