Google Guice之Servlet
来源:互联网 发布:淘宝返利网怎么报名 编辑:程序博客网 时间:2024/05/10 19:04
下面我们来看看Guiceweb的开发,这里需要注意的是你选用的guice和guice-Servlet的jar的版本最好已知,不一致的话可能会出现问题,原先我是用guice-3.0.jar和guice-servlet.jar,但是在启动web的时候报了一个类找不到,我换成了guice-servlet-30.jar就可以了。
(1)要开发Guice的web程序,首先得在你的web.xml 文件里面加上如下配置:
<!-- 添加Guice的Filter --><filter><filter-name>MyWebGuice</filter-name><filter-class>com.google.inject.servlet.GuiceFilter</filter-class></filter><filter-mapping><filter-name>MyWebGuice</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 由于GuiceFilter中没有完成Guice的初始化工作,所以我们必须自己顶一个Listener来完成Guice Injector的初始化工作 --><listener><listener-class>guice.web.listener.MyGuiceWebListener</listener-class></listener>
(2)实现MyGuiceWebListener类
import guice.web.module.MyWebModule;import com.google.inject.Guice;import com.google.inject.Injector;import com.google.inject.Singleton;import com.google.inject.servlet.GuiceServletContextListener;/** * * @author Java_Le * @Date 2014-5-3下午01:47:34 * @ClassName MyGuiceWebListener.java * * 集成GuiceServletContextListener完成Guice的初始化工作 * 返回一个Injector */public class MyGuiceWebListener extends GuiceServletContextListener {@Overrideprotected Injector getInjector() {return Guice.createInjector(new MyWebModule());//这边我自己定义了一个MyWebModule,这个类集成了ServletModule}}(3)来看看MyWebModule这个类,这里里面完成将url和Servlet之间的绑定,通过调用serve(urlPath).with(sub HttpServlet)
package guice.web.module;import guice.web.servlet.MyServlet;import com.google.inject.servlet.ServletModule;public class MyWebModule extends ServletModule{@Overrideprotected void configureServlets() {super.configureServlets();//在这里可以完成完成加一些url绑定到我们的servlet上//原先这一部分实在web.xml里面配置的serve("/myServlet").with(MyServlet.class) ;}}
(4)定义一个Servlet
package guice.web.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.google.inject.Singleton;//由于Servlet是单例的,所以必须加上@Singleton注解,不然会报错@Singletonpublic class MyServlet extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {doPost(req, resp) ;}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {resp.getWriter().write("I am MtServlet print information to front page.") ;}}(4)启动web,然后在浏览器里面输入(GuiceWeb是我这个web的工程名)
http://localhost:8080/GuiceWeb/myServlet(5)得到的结果是:
0 0
- Google Guice之Servlet
- Guice之Servlet基础
- Google Guice之牛刀小试
- Google Guice之AOP
- Google Guice之选项注入
- Google Guice之绑定方式
- Google Guice之作用域
- Google Guice之注入方式
- Google Guice之作用域
- Google Guice
- Google guice
- Google Guice
- Google Guice范例解说之使用入门
- Google Guice初试之绑定1
- Google Guice之基本类型注入
- Google Guice 入门教程06 – Web 和 Servlet
- Google Guice之AOP(面向切面编程)
- 配置Guice Servlet
- S3C2416裸机开发系列十三_电容屏驱动实现
- 国内怎么上推特?E9加速器教你国内上推特的办法
- JSF2.0实战 - 5、Button
- 140道题的解答 LeetCode Online Judge
- 一个简单 的Shell 显示程序
- Google Guice之Servlet
- [POJ 2104] K-th Number [划分树]
- a:link,a:visited,a:hover,a:active
- content provider的使用(15章-Content Providers)
- 关于计算机图形学的学习的书籍推荐
- Vim命令合集
- NSURL支持中文
- css中link visited hover active伪类的书写顺序
- Solr学习(七)DIH增量导入数据之数据的删除