`
oscar999
  • 浏览: 211234 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

Eclipse环境下 spring MVC 入门实例

 
阅读更多
实现一个spring 的登陆事例

1.在eclipse下新建动态网页工程springmvc
2.需要导入jar包.
aopalliance.jar;commons-beanutils.jar;commons-collections.jar;commons-dbcp.jar;commons-digester.jar;
commons-lang.jar;commons-logging.jar;commons-pool.jar;commons-validator.jar;freemarker.jar;jaxen-1.1-beta-7.jar;
jstl.jar;junit.jar;log4j-1.2.13.jar;servlet-api.jar;spring.jar;spring-aspects.jar;spring-mock.jar;spring-web.jar
standard.jar;xalan.jar;xercesImpl.jar;xml-apis.jar
3.修改web.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appid="WebApp_ID"version="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
springmvc
</display-name>
<servlet>
<servlet-name>Dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/Config.xml</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>Dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<jsp-config>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core_rt</taglib-uri>
<taglib-location>/WEB-INF/tlds/c.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>
其中jsp-config 定义引用c.tld标签,所以需要在WEB-INF目录下新建tlds目录后拷贝c.tld到tlds目录下.

4.对应
<param-value>/WEB-INF/Config.xml</param-value>在WEB-INF下新建Config.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<beanid="viewResolver"
class
="org.springframework.web.servlet.view.InternalResourceViewResolver">
<propertyname="viewClass">
<value>
org.springframework.web.servlet.view.JstlView
</value>
</property>

<propertyname="prefix">
<value>/WEB-INF/view/</value>
</property>

<propertyname="suffix">
<value>.ftl</value>
</property>

</bean>


<beanid="urlMapping"
class
="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<propertyname="mappings">
<props>
<propkey="/login.do">LoginAction</prop>
</props>
</property>
</bean>

<beanid="LoginAction"
class
="net.oscar.action.LoginAction">
<propertyname="commandClass">
<value>net.oscar.action.LoginInfo</value>
</property>

<propertyname="fail_view">
<value>loginfail</value>
</property>

<propertyname="success_view">
<value>main</value>
</property>
</bean>
</beans>

5.在工程的src下新建Config.xml用到的net.oscar.action.LoginAction和net.oscar.action.LoginInfo的类
packagenet.oscar.action;

publicclassLoginInfo...{
privateStringusername;
privateStringpassword;
publicStringgetUsername()...{
returnusername;
}

publicvoidsetUsername(Stringusername)...{
this.username=username;
}

publicStringgetPassword()...{
returnpassword;
}

publicvoidsetPassword(Stringpassword)...{
this.password=password;
}

}


packagenet.oscar.action;

importjava.util.HashMap;
importjava.util.LinkedList;
importjava.util.List;

importorg.springframework.validation.BindException;
importorg.springframework.web.servlet.ModelAndView;
importorg.springframework.web.servlet.mvc.SimpleFormController;

publicclassLoginActionextendsSimpleFormController...{
privateStringfail_view;
privateStringsuccess_view;

protectedModelAndViewonSubmit(Objectcmd,BindExceptionex)throwsException...{
LoginInfologinInfo
=(LoginInfo)cmd;
if(login(loginInfo)==0)...{
HashMapresult_map
=newHashMap();
result_map.put(
"logininfo",loginInfo);

ListmsgList
=newLinkedList();
msgList.add(
"msg1");
msgList.add(
"msg2");
msgList.add(
"msg3");
result_map.put(
"messages",msgList);

returnnewModelAndView(this.getSuccess_view(),result_map);
}
else...{
returnnewModelAndView(this.getFail_view());
}


}


privateintlogin(LoginInfologinInfo)...{
if("oscar".equalsIgnoreCase(loginInfo.getUsername())&&"123456".equals(loginInfo.getPassword()))...{
return0;
}

return1;

}

publicStringgetFail_view()...{
returnfail_view;
}

publicvoidsetFail_view(Stringfail_view)...{
this.fail_view=fail_view;
}

publicStringgetSuccess_view()...{
returnsuccess_view;
}

publicvoidsetSuccess_view(Stringsuccess_view)...{
this.success_view=success_view;
}

}


6.改动index.html文件(在WebContent目录下)
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<title>Inserttitlehere</title>
</head>
<body>
<formmethod="post"action="login.do">
<palign="center">登录</p>
<br>
用户名:
<inputtype="text"name="username">
<br>
&nbsp;&nbsp;码:
<inputtype="password"name="password">
<br>
<p>
<inputtype="submit"value="提交"name="B1">
<inputtype="reset"value="重置"name="B2">
</p>
</form>
</body>
</html>
7.在WEB-INF下新建view目录用于存放jsp文件,loginfail.jsp和main.jsp
main.jsp
<%...@pagelanguage="java"contentType="text/html;charset=ISO-8859-1"
pageEncoding
="ISO-8859-1"
%>
<%...@taglibprefix="c"uri="http://java.sun.com/jstl/core_rt"%>

<html>
<head>


</head>
<body>
<p>LoginSuccess!!!</p>

<p>CurrentUser:
<c:outvalue="${logininfo.username}"/><br>
</p>

<p>YourCurrentmessages:</p>
<c:forEachitems="${messages}"
var
="item"
begin
="0"
end
="9"
step
="1"
varStatus
="var">
<c:iftest="${var.index%2==0}">
*
</c:if>
${item}
<br>
</c:forEach>
</body>
</html>
loginfail.jsp
<%...@pagelanguage="java"contentType="text/html;charset=ISO-8859-1"
pageEncoding
="ISO-8859-1"
%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=ISO-8859-1">
<title>Inserttitlehere</title>
</head>
<body>
Loginfail!
</body>
</html>

大功告成!在index.html中输入用户名:oscar 密码:123456就可以登陆了.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics