想用spring做前后端分离的开发,到底该怎么做?

G调和弦 2015-01-01 12:28:35
我一直很郁闷,网上查了不少。大概只了解到HTML+Ajax向服务端发送请求后,spring根据请求将数据以JSON发送回客户端。
于是乎我开始纠结了,最先开始是发现springMVC无法像JSP一样,用视图解析器去访问WEB-INF下的JSP资源。我只能把HTML设置成静态资源去访问,虽然URL可以在控制类中用@RequestMapping注解,来转发路径。
可是因为静态资源,所以将文件目录作为url也能访问到HTML。这让我纠结了很久,想隐藏掉真实的URL,可又做不到。。。至少我能力有限,实在找不到解决办法。
而在服务端方面。。。虽然模糊的知道在获取Ajax的请求后,应该返回一个JSON格式的响应。可具体该怎么做,却毫无头绪,上网查了查也弄得更是一头雾水。
什么是MRI,什么是REST。。。这到底和我想做的有没有关系啊!
已经完全不知道该怎么下手了。。。也找不到想要的教程和资料。
求求各位大神给我提供下学习方向吧。。。
...全文
428 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
G调和弦 2015-01-01
  • 打赏
  • 举报
回复
额,不好意思,我现在才发现我的提问说错了。。。。我想说的是springMVC无法访问WEB-INF下的HTML资源。。。。
a87977825 2015-01-01
  • 打赏
  • 举报
回复
首先,springmvc自身是可以访问WEB-INF下面的jsp文件的; 至于怎么返回一个JSON,是直接可以response.getOutputStream().write("{'a','b'}");把json数据直接返回给前端
疯狂熊猫人 2015-01-01
  • 打赏
  • 举报
回复
前后端分离: 前后端人员双方约定好接口的数据格式,比如:前端需要调用一个用户信息的接口,数据格式为{name:'',gender:''},那么,后端人员只需要告诉他一个接口url(如:http://192.168.1.2:8080/pro/userInfo),并且将这个接口返回前端想要的数据即可,至于后端人员怎么实现这个接口,前端人员并不关心!至于前端人员要用这个接口来做什么,后端人员同样不需要关心!双方都只专注于自己需要实现的业务逻辑
疯狂熊猫人 2015-01-01
  • 打赏
  • 举报
回复
1、Spring可以解析WEB-INFO下面的jsp文件,只需要在dispatcher-servlet.xml中配置视图解析器即可。RequestMapping注解的方法返回一个ModelAndView即可
<bean id="viewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass"
			value="org.springframework.web.servlet.view.JstlView" />
		<property name="prefix" value="/WEB-INF/jsp/" />
		<property name="suffix" value=".jsp" />
	</bean>
2、想隐藏真实的路径,可以使用urlrewritefilter这个工具jar包,具体使用请参考官网:tuckey.org/urlrewrite/manual/4.0/index.html 3、Spring现在高版本可以使用RestController这个注解,该注解标记的类中所有的RequestMapping方法都将直接将结果写入response流中,如果要直接返回JSON格式的数据,做如下配置(我用的fastjson):备注(如果用Spring自带的JSON解析器,需要引入Jackson的相关jar包,不需要添加下面的配置也行)
<mvc:annotation-driven>
		<mvc:message-converters>
			<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
				<property name="supportedMediaTypes">
					<list>
						<value>text/html;charset=UTF-8</value>
					</list>
				</property>
			</bean>
		</mvc:message-converters>
	</mvc:annotation-driven>

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧