发表于: 2017-09-30 23:14:08
1 714
今天完成的任务:
1.学习ssm的实现原理。
<form> </form>是一个表单,当我submit提交的时候,表单内的属性值都会提交到值栈,
然后在java程序中action,或者servlet就可以使用其中的值。比如使用的登录界面。
就是将界面写在form里面,然后提交用户名和密码。
action是将表单中的内容提交到制定的路径中。
springmvc中注解的作用:
@controller 用来标记在类之上,来说明这是一个控制类。使用@Controller说明他是一个springmvc的Controller对象。用自动扫描或者指定地址的方法来用Spring管理。
@RequestMapping用来请求地址映射的注解,可以使用在类之上或者方法之上。用在类之上,就说明了这个类里面所有的请求都是在类路径下。
使用下面的方法,在类上面和方法上面都加标注,访问的路径就是/user/login,如果没有类上面的标注,就直接是/login
@RequestMapping("user")
public class CategoryController {
@Autowired
CategoryService categoryService;
@RequestMapping(value = "/login",method = RequestMethod.GET)
public String Login() {
return "login";
}
@Resource和Autowired
都是用来注入bean的时候使用,知识resource是byname,autowired是bytype。主要的作用是省去了set方法。
@Override
作用是可以帮助检验方法名中是否有父类中包含的,不然会报错。可以不写。
2.和李亚衡师兄问了一下任务2的基本要求,然后发现自己还是有些需要修改的地方。
日志文件:需要输出到文件中。添加下面一半输出到文件就好。
log4j.rootLogger=ERROR,info,stdout,file
# MyBatis logging configuration...
log4j.logger.com.how2java=TRACE
# 控制台...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
#文件
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=e\:mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
理解配置文件
1.springmvc
<mvc:annotation-driven/> 为springmvc注解驱动
可代替handlerMapping和handlerAdapter自动注册这两个方法。
<!-- 注解处理器映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandler
Mapping"></bean>
<!-- 注解适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandler
Adapter"></bean>
2.web.xml:加载顺序context-param -> listener -> filter -> servlet
<listener></listener>配置监听器contextLoaderListener因为它实现了ServletContextListener这个接口,
在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。
<filter></filter>过滤器。有很多不同的用法,目前用到的是编码的功能。
<servlet></servlet>在servlet中设置dispatcher-servlet并且,设置某种格式的请求交给他来处理。
<urlpattern>就是设置某种访问形式。比如/或者/test/*(只要在test的路径之后都可以)等。
<context-param>的作用:
web.xml的配置中<context-param>配置作用
1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点:
<listener></listener> 和 <context-param></context-param>
2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文.
3.容器将<context-param></context-param>转化为键值对,并交给ServletContext.
4.容器创建<listener></listener>中的类实例,即创建监听.
5.在监听中会有contextInitialized(ServletContextEvent args)初始化方法,在这个方法中获得ServletContext = ServletContextEvent.getServletContext();
context-param的值 = ServletContext.getInitParameter("context-param的键");
6.得到这个context-param的值之后,你就可以做一些操作了.注意,这个时候你的WEB项目还没有完全启动完成.这个动作会比所有的Servlet都要早.
换句话说,这个时候,你对<context-param>中的键值做的操作,将在你的WEB项目完全启动之前被执行.
7.举例.你可能想在项目启动之前就打开数据库.
那么这里就可以在<context-param>中设置数据库的连接方式,在监听类中初始化数据库的连接.
8.这个监听是自己写的一个类,除了初始化方法,它还有销毁方法.用于关闭应用前释放资源.比如说数据库连接的关闭.
3.回答师兄小课堂的提问。
@Controller @Service @Repository的区别和使用范围
Controller一般用在控制组件中,service用在业务逻辑层,repository用在dao层。
另外在不确定使用哪一种的时候可以使用@component通用的来标注。
4.配置和使用jetty
jettt是基于java的web容器,与tomcat作用相似,但是特点是轻量级更灵活(可插拔可扩展)。
在idea中配置jetty有两种方法。一个是在maven中加入plugin就可以使用
另一个是下载jetty的插件,然后和tomcat一样加入到项目中。
外置的添加jetty的时候会报错,然后加了一行 --module jxm 就好了
添加好了jetty但是运行的时候又报错了。
重新试一下使用maven里面的插件运行,使用maven来添加插件是可以的。
明天计划:
明天计划做深度思考。
把项目用到的表改成student报名表。
遇到问题:
1. 在使用log4j的时候报错,不能同时输出到控制台和文件中。。。
但是我这句话应该没错啊:
log4j.rootLogger=info,stdout,file
2使用外置的jetty报错了。
3.jetty下载了不能用。找不到原因。
收获:
知道了ssm中的配置文件的意思,并且都添加了注释。
知道了注解的作用
学会了使用jetty来运行
安装好了postman
禅道:
不延期
http://taskNaNteng.com/zentao/project-task-343.html
评论