java ee7 入门_JavaEE7入门——servlet

环境:tomcat8, netbeans8

@WebServlet注解可以使servlet不用在web.xml中声明。

index.jsp

AccountServlet.java

@WebServlet(urlPatterns = {"/account", "/accountServlet"},

initParams = {@WebInitParam(name = "accName", value = "noHaHa")})

public class AccountServlet extends HttpServlet {

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response) {

String accName = request.getParameter("accName");

System.out.println(accName);

}

}

这个getParameter是个坑,我一直写成getAttribute,所以老是出现null,而找不到原因。

jsp中的action可以指定为注解中urlPatterns中的任何一个,写成accountServlet也是可以的。

注解的第二个参数,initParams,我还以为是为input提供的默认值,然后就留个空值就提交了,发现没有输出。原来这个注解是对应web.xml中的的

修改servlet

@WebServlet(urlPatterns = {"/account", "/accountServlet"},

initParams = {@WebInitParam(name = "accName", value = "noHaHa")})

public class AccountServlet extends HttpServlet {

@Override

public void init() {

System.out.println(this.getInitParameter("accName"));

}

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response) {

String accName = request.getParameter("accName");

System.out.println(accName);

}

}

部署访问,noHaHa 会先于你的输入出现。

由于这种环境下,ide+tomcat是热部署。

如果只修改jsp,不修改servlet,是不会重新编译servlet的。所以不会每次修改jsp,多会输出noHaHa。

如果同时使用web.xml和注解,那么注解的值会被web.xml中的值覆盖:优先级 web.xml > @

忽略注解

在web-app中加入metadata-complete="true"

...

...

metadata-complete="true">

..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值