从头来一遍
拦截器有点迷糊
还行没太乱
被一个无关紧要的类搞蒙圈了
1
先写一个拦截器
在web里,一般这么写 public class LoginInterceptor extends AbstractInterceptor
下一个是方法
Public String intercept(ActionInvocation arg0)throws Exception
{
开始巴拉巴拉操作
如果成功 就放行
Arg0.invoke();
如果不成功,就自己返回个语句
Return “不可以咩~”
}
2
Ok,拦截器写完了 让我们红尘作伴开始配置
配置的套路是这样的 在Struts.xml里
<interceptors>
<interceptor name=”logincheck” class=”芭啦芭啦”>(好像不用写方法哦~)
</interceptors>
(不行我得写会这单词 interceptors interceptor interceptor interceptor interceptor interceptor interceptor interceptors)
好了接着写虽然明天估计又忘了。。。
然后开始action了啊
<action name class method>(这都老套路)
<interceptor-ref name=”logincheck”></interceptor-ref>
<result></result>
</action>
Ok~O(∩_∩)O~好像差不多了 去试一下~
忘怎么取Session了 哭T,T 又不争气的回来了
1
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
2
HttpSession session = ServletActionContext.getRequest();
一顿找jar包的错最后发现是ServletActionContext!!不是ServletContext
够了~!
好了同学们让我们走一个~
失败了宝宝有点蒙。。。
从头说一遍
运用Session在登录上没有任何意义啊~!
因为 打开一个新界面:登录不进去(因为Session的缘故)
老界面:完全没意义
(而且直接登录success.jsp拦截器我还不知道怎么起作用)
Ok~完美差不多了也不写了,
晚上回来把那个作业写了,再把什么国际配置弄明白就行了,如果不偷懒的话
还有写界面挖出来的坑,
两个select语句还是不熟悉啊
第一个是查单个
Return qr.query(“select * from user where name=?” , new BeanHeadler<User>(User.class),user.getName());
第二个是查一个集合
Return qr.query(“select * from user where name=?,new Object[]{user.getName()},new BeanListHeadler<User>(User.class);
然后是C3p0链接数据库我也记不住啊/(ㄒoㄒ)/~~
先链接C3P0的配置文件
然后写个C3P0Utils类
Import javax.sql.DataSource; Publi class C3P0Utils { Private static DataSource ds = new ComboPooledDataSource(); Public static DataSource getDataSource() { Return ds; } }
然后写daoimpl层
QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
下一个环节:国际化概念(了解)
步骤
1
创建一个消息资源包
比如:message_zh_CN.properties message_zh_HK.properties
里面大概是这个样的
key=\u5168\u5C40\u7684\u5C5E\u6027
jsp.login.username=\u7528\u6237\u540D
jsp.login.password=\u5BC6\u7801
jsp.login.denglu=\u767B\u9646
自己理解吧~
<!--[if !supportLists]-->2.<!--[endif]-->读取资源包中的内容
(在jsp页面上,head上面就行)
<% Locale locale = request.getLocale(); ResourceBundle bundle = ResourceBundle.getBundle(“com.itherima.resources.message”,locale); %> <body> <%=bundle.getString(“jsp.login.username”)%><input type=”text” name=”name”>
这个图有一个地方挺好玩的,就是拦截器那,在第一次拦截时候,已经运行了jsp页面了,只不过没显示东西。再次经过拦截器才把html页面运行出来。
写歌的人就该有伤悲,写首小调名字叫后悔。哪有唐人不懂 得陶醉,再上一层胭脂也不美。一声戛然而止的鞭炮,你说不要
跟不上了不写了,你说孤独是诗人应有的体会,
相关推荐
文件的国际化字符串中使用OGNL,格式为${表达式},例如: validation.required=${getText(fileName)} is required 2. 使用java.text.MessageFormat中的字符串格式,格式为{ 参数序号(从0开始), 格式类形(number |...
11. **I18nInterceptor**:国际化拦截器,记录用户选择的区域设置,以实现多语言支持。 12. **LoggerInterceptor**:日志拦截器,输出Action的名字以及相关信息,帮助开发者进行日志记录。 13. **Message ...
12. **I18N (国际化)** - **功能**:支持多语言应用,可以基于用户的语言设置动态加载相应的资源文件。 13. **Logger (日志记录)** - **说明**:为Action提供日志记录功能,可以记录Action的执行情况以及重要...
1. 配置`struts.xml`:在`struts.xml`文件中,需要添加一个拦截器来处理国际化。在`<struts>`标签内添加以下内容: ```xml <!-- Add the i18n interceptor to the default stack --> ... ``` 这将使`...
此外,还可以使用拦截器(Interceptor)进行更复杂的业务逻辑验证。 总的来说,Struts2的校验器和国际化功能为开发人员提供了强大的工具,使得他们可以轻松地管理用户输入的验证和多语言支持,从而提升应用的用户...
4. **国际化拦截器**:Struts2提供了一个名为`i18n`的拦截器,它可以自动处理资源文件的加载和选择。在Action配置中添加这个拦截器,确保正确解析用户选择的语言: ```xml <!-- 其他拦截器 --> ``` 5. ...
- **Interceptor拦截器**:在Action执行前后进行预处理和后处理,如登录检查、日志记录等。 - **Result结果类型**:定义了Action执行后的跳转逻辑,如重定向到某个页面。 - **ValueStack**:存储Action上下文的...
国际化(i18n)是任何大型应用程序不可或缺的一部分,它允许软件根据用户的地区设置显示相应的语言内容。在Struts2中实现国际化,可以为不同国家和地区的用户提供更加友好的体验。 在"Struts2 最简单的国际化Demo...
但是我们可以在一个完全不同的类里定义一些拦截器,然后在任何控制器里使用@With注释来链接他们。 - 42 - Session和Flash作用域 - 42 - 04.模板引擎 - 43 - 模板语法 - 43 - Expressions: ${…} - 44 - Template ...
- 拦截器是Struts2的重要特性,它可以插入到Action调用的链路中,执行预处理和后处理任务,如登录验证、日志记录、性能统计等。 - 默认的拦截器栈包括了异常处理、参数校验和类型转换等功能。 3. **Struts2配置**...
书中对Struts 2的各项特性进行了详细解析,包括但不限于国际化、验证框架、类型转换、事件监听等,帮助开发者根据项目需求选择最适合的功能。 ### 附加知识点 尽管本书主要关注Struts 2,但提及的“java”、“ajax...
常见的拦截器有Validation拦截器(表单验证)、I18n拦截器(国际化)和Execute-and-Redirect拦截器(防止重复提交)。 4. **结果类型(Result)**:Struts2支持多种结果类型,如dispatcher(默认,转发到一个JSP...
3. **拦截器**:理解Struts2中拦截器的工作原理,以及如何自定义拦截器以实现特定功能。 4. **表单验证**:学习如何使用Struts1的ActionForm和Struts2的Validator框架进行数据校验。 5. **结果类型**:掌握如何定义...
- **Struts2**:继承了Struts1的优点,同时支持在Action类和拦截器中直接使用资源文件,更方便地实现国际化。 5. **异常处理** - **Struts1**:异常处理不够灵活,需要在struts-config.xml中配置全局异常处理。 ...
3. **拦截器(Interceptors)**:Struts2的一个强大特性是它的拦截器,这些拦截器可以实现如日志记录、权限检查、性能监控等功能。在执行Action之前和之后,拦截器会被调用。 接下来,我们关注资源文件国际化: 4....
- **拦截器**:掌握如何使用拦截器对请求进行预处理或后处理,增强应用的安全性和功能性。 - **集成测试**:学会编写集成测试来验证Seam应用的功能和性能。 #### 四、综合运用 **1. 结合JSF2与JBoss Seam** - **...
WebWork是一个轻量级的MVC框架,它通过使用动作(Action)和结果(Result)的概念来处理用户请求,并且提供了强大的数据绑定、类型转换、异常处理和国际化支持。WebWork 2.2.2是该框架的一个稳定版本,它引入了许多...
7. **国际化(Internationalization, i18n)**:Struts2支持多语言环境,可以轻松实现应用的国际化。 8. **主题与皮肤(Themes and Skins)**:提供了一种改变应用外观的方式,通过更改主题和皮肤,可以快速改变UI...