SpringMVC知识点汇总

1.${SESSION_USER_V2}

        会从大到小查找作用域中的attribute
          PageContext                          PageScope
          servletRequest                       RequestScope
          httpSession                         SessionScope
          Application/servletContext        ApplicationScope   
          
          
2.${param.name}

实际上是相当于request.getParameter("name")方法

3.空连接

href="#"方法:

其实也是空连接的意思,但是点击之后会自动跳转到页面的最上面,因为用了这个方法就相当于点击了一个锚记,但是这个锚记又没写ID,所以就默认跳转到页面顶部。

href="javascript:void(0);"方法:
void是一个操作符,这个操作符指定要计算一个表达式但是不返回值。如果在void中写入0(void(0)),则什么也不执行,从而也就形成了一个空链接。

#与javascript:void(0)的区别:
所以,#与javascript:void(0)的区别也很明显,#方法会跳转到页面的顶部,并且在页面URL后面会出现#,而javascript:void(0)方法不会,所以如果是空连接的话,还是推荐javascript:void(0)。

4.添加删除样式

$(function(){
    $("#myArticle").click(function(){
        $("#allArticle").removeClass("current");
        $("#myArticle").addClass("current");//最好不要用Attr()和removeAttr(),因为css样式会继承
    })    
    $("#allArticle").click(function(){
        $("#myArticle").removeClass("current");
        $("#allArticle").addClass("current");//
    })    
    
})

5.SpringMVC获取session
直接在方法上使用 HttpSession即可注入

或者注入HttpServletRequest--->再获取Session

6.拦截器配置
applicationContext.xml
 <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/comment*"/>
            <mvc:mapping path="/article/add"/>
           <mvc:mapping path="/article/myArticle"/>
            <bean class="com.dooioo.samples.blog.inteceptor.LoginInteceptor" />
        </mvc:interceptor>
    </mvc:interceptors>
    
7. context root设置问题

比如我们的项目名称是myApp(即myApp文件夹下有WEB-INFO文件夹),发布在本机80端口,且context-root设置为myApp,
则访问默认欢迎页面时的url是:http://localhost:80/myApp。如果context-root设置成/,则url会变成:http://localhost:80/

1.在新建web项目时,仔细观察会有输入框提示输入context-root,如果希望url是后者的样子,则context-root框中只输入"/"即可,否则输入你想要的目录名称;

2.如果您使用eclipse开发,则在项目上右击,然后选择属性,再选择Web Project Settings,然后修改

context-root内容;若您使用myEclipse开发,则右击项目-->“Properties”-->“MyEclipse”-->“Web”,看到了吧“Context Root”选项卡里的“Web Context-root”,修改之;

8.修改eclipse虚拟机内存
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms256m
-Xmx1024m  堆内存
-XX:PermSize=512M    非堆内存
-XX:MaxPermSize=1024M

9.Target runtime Apache Tomcat v6.0 is not defined.
项目文件夹下
.settings\org.eclipse.wst.common.project.facet.core.xml文件中
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <runtime name="Apache Tomcat v6.0"/>
  <fixed facet="java"/>
  <fixed facet="jst.web"/>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="java" version="1.6"/>
  <installed facet="jst.web" version="2.5"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>
删除掉 <runtime name="Apache Tomcat v6.0"/>

10. Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.

11. ibatis中sql语句中#与$的区别

1.#是把传入的数据当作字符串,如#user_id_list#传入的是1,2,则sql语句生成是这样,in ('1,2') ,当然不可以

2.$传入的数据直接生成在sql里,如#user_id_list#传入的是1,2,则sql语句生成是这样,in(1,2) 这就对了.

3.#方式能够很大程度防止sql注入

4.$方式无法方式sql注入

5.$方式一般用于传入数据库对象,例如传入表名

直观的说
#str# 出来的效果是  'str'
$str$ 出来的效果是  str

另外  ##只能用在特定的几个地方 $$可以用在任何地方  比如 order by $str$

你甚至可以直接写  $str$  把 order by 这个字串放在str里传进来

12. model.addAttribute(article)

默认key为article的类型

13.springmvc的controller默认是单例的

可以加上@Scope("prototype")变为多实例的

14.<jsp:param>标签

<jsp:param>操作被用于以"名-值"对的形式为其他标签提供附加信息。
它可以和<jsp:include>,<jsp:forward>,<jsp:plugin>一起使用。

例1:实现 includeaction.jsp中展示come.jsp页面,值由主页面传入。

includeaction.jsp代码

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    <title>Include</title>
</head>
<body>
    <%double i = Math.random();%>
    <jsp:include page="come.jsp">//加载come.jsp
        <jsp:param name="number" value="<%=i%>" />//传递参数
    </jsp:include>
</body>
</html>

在come.jsp代码

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    <title>come</title>
</head>
<body bgcolor=cyan>
  <Font Size=3>
  <%//获得includeAction.jsp传来的值:
    String str = request.getParameter("number");
    double n = Double.parseDouble(str);
   %>
    The value form includeAction is:<br> <%=n%>
</Font>
</body>
</html>


15. return false
取消元素的默认行为

16.Ibatis中SqlMapClientTemplate和SqlMapClient的区别
SqlMapClientTemplate是org.springframework.orm.ibatis下的
而SqlMapClient是ibatis的
SqlMapClientTemplate是SqlMapClient的封装类.
SqlMapClient中包含着session的管理.
SqlMapClientTemplate用于session的封装,以及异常的捕捉.
所以按照以上的推断来说.应该尽量使用SqlMapClientTemplate.
保证session以及Exception的正常以及统一.
参考文章:
http://blog.csdn.net/wxwzy738/article/details/16953609

17.there is no statement named xxx in this SqlMap
sqlmap文件定义了namespace属性,就需要这样写:(你的namespace).(定义的statement的id),如果把namespace属性漏了,就被报此异常

<sqlMap namespace="Category">
    <typeAlias alias="category" type="com.dooioo.samples.blog.model.Category"/>

    <select id="query" resultClass="category">
        select * from category where status != -1
    </select>

     <insert id="insert" parameterClass="category">
     insert into category(name) values (#name#)
     </insert>
     
     <update id="delete" parameterClass="int" >
     update category set status=-1 where id=#id#
     </update>
     
   <select id="queryForPaginate2" parameterClass="category" resultClass="category">
        mst_sp_pageshowex4 '$columns$ ','$table$','$where$','$orderBy$',$pageSize$,$pageNo$
    </select>

    <select id="count2" parameterClass="category" resultClass="integer">
        sp_pagecount '$table$','$where$'
    </select>

</sqlMap>

18. ibatis upadte delete insert 返回作用的行数

com.dooioo.web.converter.DyMappingJacksonHttpMessageConverter

19.HTTP400\HTTP500

HTTP400    错误的请求
HTTP500   内部服务器错误!

404请求 404状态码是一种http状态码,其意思是: 所请求的页面不存在或已被删除!
通俗的讲就是当用户输入了错误的链接时,返回的页面。

20.@ModelAttribute Article article, BindingResult result
(BindingResult result必须紧跟在@ModelAttribute后面)

21 @ModelAttribute和@Valid区别

@ModelAttribute is used to map/bind a a method parameter or method return type to a named model attribute. See @ModelAttributes JavaDoc. This is a Spring annotation.

@Valid is an annotation that marks an object for JSR-303 bean validation. See @Valids JavaDoc. It is part of JavaEE 6, but I think Hibernate has an earlier implementation that most people use instead.

The advantage of using @ModelAttribute is that you can map a form's inputs to a bean. The advantage of @Valid is that you can utilize JSR-303 bean validation to ensure that the bean that is made is validated against some set of rules.

Yes you can use @ModelAttribute and @Valid together.

JSR 303 – Bean Validation 是一个数据验证的规范

22.sqlserve服务器密码登录

http://blog.csdn.net/jufeng9318/article/details/8203780

23.EL表达式加三元表达式

 <input id ="keyword" type="text" name="keyword"  value="${ keyword !=null ? keyword : '输入问题关键词,如:产品线、技术分享等…' }" >
 

24. web.xml启动顺序
 1.context-param
 2.listener
 3.filter
 4.servlet
         

本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1706049

时间: 2024-10-30 04:15:23

SpringMVC知识点汇总的相关文章

JavaScript提高性能知识点汇总_javascript技巧

一.针对js文件的加载位置 在HTML文件中,<script>标签是可以加在<head>区域和<body>区域的.这里鉴于JavaScript执行和UI渲染的单线程原因,如果js文件载入会阻塞后面对于页面的解析过程,页面会等到js文件完全加载并运行后才继续执行该做的操作.那么问题就来了,这样可能会出现页面空白or卡顿现象.作为一名前端开发,重要的不仅仅止于实现了需求,应该还有优质的用户体验.那么我们就需要消除用户枯燥的等待,针对这个问题,这里有本兽想到的两种解决方案:

Python中的列表知识点汇总_python

Python list 在介绍 Python tuple 时,我使用了类比的方法,将其比做一个袋子,您可以在袋子中存放不同的东西.Python list 与此非常类似,因此,它的功能与袋子的功能也非常类似.但有一点是不同的,即您可以使用方括号创建 list,如清单 1 所示. 清单 1. 在 Python 中创建一个 list >>> l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> l [0, 1, 2, 3, 4, 5, 6, 7, 8,

Java正则表达式易错知识点汇总_java

一.概述 正则表达式是Java处理字符串.文本的重要工具. Java对正则表达式的处理集中在以下两个类:java.util.regex.Matcher   模式类:用来表示一个编译过的正则表达式.java.util.regex.Pattern   匹配类:用模式匹配一个字符串所表达的抽象结果. (很遗憾,Java Doc并没有给出这两个类的职责概念.)  比如一个简单例子: import java.util.regex.Matcher; import java.util.regex.Patter

Mysql基础知识点汇总_Mysql

1.什么是SQL语句 sql语言:结构化的查询语言.(Structured Query Language),是关系数据库管理系统的标准语言. 它是一种解释语言:写一句执行一句,不需要整体编译执行. 语法特点: 1.没有" ",字符串使用' '包含 2.没有逻辑相等,赋值和逻辑相等都是= 3.类型不再是最严格的.任何数据都可以包含在' '以内 4.没有bool值的概念,但是在视图中可以输入true/false 5.它也有关系运算符:> < >= <= = <

Linux shell知识点汇总_linux shell

实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核.不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序.Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果. 引言 SHELL在处理一些问题的时候有得天独厚的优势,快捷方便,学会了还可以显摆显摆,当然了,shell的语法有点坑爹,没有系统的学过,只能一点一点的积累. 今天这个是在实现一个刷

js+jquery常用知识点汇总

 本文主要介绍了jquery源码中常见的知识点以及javascript中原型链常见的知识点,非常的全面,这里推荐给小伙伴们.     一.jquery源码中常见的知识点 1.string,number类型转换的快捷方法   复制代码 代码如下: // @param s为字符串,n为数字 function fn(obj){ //转换为String类型 var s = obj +""; //转换为number类型 var n = +obj; }   分享一个面试例子: //加会将其后面自动

js+jquery常用知识点汇总_javascript技巧

一.jquery源码中常见的知识点 1.string,number类型转换的快捷方法 复制代码 代码如下: // @param s为字符串,n为数字 function fn(obj){     //转换为String类型     var s = obj +"";     //转换为number类型     var n = +obj; } 分享一个面试例子: //加会将其后面自动转换成字符串 "64"+4="644" //减会将其自动转换成数字 &

cakephp常见知识点汇总

本文实例总结了cakephp常见知识点.分享给大家供大家参考,具体如下: 1. 调用其他控制器的模板,重定向 方法一: 在此调用/views/tasks/tasks下的hello.ctp模板 $this -> viewPath = 'tasks'; $this -> render('hello'); 方法二(带参): $this->redirect(array('controller'=>'users','action'=>'welcome',urlencode($this-

Python开发一个csv比较功能相关知识点汇总及demo

Python 2.7 csv.reader(csvfile, dialect='excel', **fmtparams)的一个坑:csvfile被csv.reader生成的iterator,在遍历每二次时,内容为空 iterator An object representing a stream of data. Repeated calls to the iterator's __next__() method (or passing it to the built-in function n