ssm框架不用jsp用HTML可以吗,SSM框架之关于使用JSP作为视图展示问题解决方案

搜索热词

JSP作为视图层展示数据,已经有很长一段时间了,不管是在校学习还是企业工作,总会或多或少接触这个。特别是对于一些传统中小型或者一些几年前的企业而言,有很多使用JSP作为视图展示层。

JSP本质是就是Servlet,Servlet可以说也是JSP。

bb0b8193c28464173cd4b4beb466d620.png

用图描述就是如下:

303613fe30641fd2520806dd551918af.png

通过上述两张图,足以知道,不管是JSP还是Servlet最后都是以HTML的形式在前端显示。

关于JSP和Servlet学习教程可以参考这个教程:http://www.runoob.com/jsp/jsp-tutorial.html

JSP作为视图展示数据,通常情况下会有这么几个问题?

1.如果是SpringMVC拦截条件为*.do,可以不考虑静态资源被拦截问题,如果是/的话,就不得不考虑了。通常情况下,解决办法如下:

在SpringMVC的配置文件中写:

mvc:resourceslocation="/static/css/"mapping="/css/**"="/static/images/"="/images/**"="/static/js/"="/js/**"="/static/layer/"="/layer/**"="/static/layui/"="/layui/**"/>

或者是在web.xml这么写

静态资源放行-->

servlet-mapping>

servlet-name>default/view/>/assets/>/components/*>/header/*>/layouts/*>/snippets/*>

>/swagger-ui/*>*.html>

>

需要SpringMVC配置文件补充

如果是这样使用,需要注意的是必须放在SpringMVC的前端控制器前面,否则是不起作用的。

2.使用jsp视图解析器,路径问题需要注意

解决办法:在web.xml配置或者直接在jsp页面每个静态资源../或者../../替换为${pageContext.request.contextPath}

${pageContext.request.contextPath},因为通过它直接就获得上下文路径。

还有就是新建两个类定义全局路径,也是可以解决这个问题的。

BaseListener.java

packagecom.blog.listener;importjavax.servlet.ServletContextEvent;javax.servlet.ServletContextListener;/*** Application Lifecycle Listener implementation class BaseListener

**/

public class BaseListener implementsServletContextListener {* Default constructor.*/

publicBaseListener() {//TODO Auto-generated constructor stub

}*@seeServletContextListener#contextDestroyed(ServletContextEvent)voidcontextDestroyed(ServletContextEvent arg0) {TODO Auto-generated method stub

ServletContextListener#contextInitialized(ServletContextEvent)contextInitialized(ServletContextEvent arg0) {}

}

ServerStartupListener.java

javax.servlet.ServletContext;javax.servlet.ServletContextEvent;* 获取Web应用路径

*@authoryc

*class ServerStartupListener extendsBaseListener {

@OverridecontextInitialized(ServletContextEvent sce) {Web应用对象

ServletContext application=sce.getServletContext();获取web应用路径

String path =application.getContextPath();将Web应用路径保存到应用范围中

application.setAttribute("APP_PATH",path);

}

}

并在web.xml配置如下监听器即可:

listenerlistener-class>com.blog.listener.ServerStartupListener>

该监听器最好放在org.springframework.web.context.ContextLoaderListener监听器下面。

3.关于使用jstl标签库问题

注意要引用这个maven依赖

dependency>

groupId>jstlartifactIdversion>1.2>

至于为什么要使用jstl,简单的说比简洁方便,相对灵活,功能也比较强大。

当然了,建议不要滥用,滥用的代价会导致维护起来十分困难。

如果你的jstl是使用1.0版本的话,遇到不能使用的问题可以参考这个链接:https://blog.csdn.net/whh743/article/details/53580954

4.视图解析器问题

视图解析一般是没有问题的,除非路径写错了,或者tomcat应用服务器存在问题。不然的话一般配置正确的视图解析器路径,都会正常解析并返回视图数据。

SpringMVC配置文件,正确配置内容如下:

对模型视图名称的解析,即在模型视图名称添加前后缀beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver">

propertyname="prefix"value="/pages/" />

="suffix"=".jsp" />可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑bean>

如果是将jsp放在WEB-INF下可以这么写:

="/WEB-INF/view/" >

至于为什么放在WEB-INF下,原因是因为用户不能直接通过浏览器输入URL访问对应的jsp文件或者是其他资源,简单的说这样有利于安全性。

5.关于用户信息保存Session问题,不管是Servlet(JSP)或者是在SPringMVC中,都可以通过如下代码定义Session的属性及其值和获取属性及其值

HttpSession session=request.getSession();

session.setAttribute("User",user);

HttpSession session = request.getSession();

session.getAttribute(“名称”);------得到session放入进去的信息。

session.getAttributeNames()-----得到session里面所有的信息名称。

session.getMaxInactiveInterval()----得到session最大存活时间。

seesion.getId();------得到session的id。比较有用的属性,可以实现共享session。

session.getCreationTime()-----session创建时间。

小结:

本文主要围绕的是关于JSP视图解析器在实际开发中常见的问题,以供大家参考解决一些问题

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值