本文目录一览:
- 1、jsp和Java后台数据如何交互
- 2、JSP如何调用java代码
- 3、jsp如何调用java类
- 4、java开发的信息系统里,jsp与java文件是怎么传递数据的啊?
- 5、jsp 怎么用java和jsp传值
- 6、spring 中如何实现jsp与java的交互
jsp和Java后台数据如何交互
%
String path = request.getContextPath();
%
获取jsp所在工程的名称
var ids = new Array();
$.ajax({
type : "POST",
contentType : 'application/json',
url : '%=path%/ui/product/havePsmPackage',
data:JSON.stringify(ids),
async :false,
dataType : "json",
success : function(data) {
},
error:function(){
}
});
1、前台如果传的是一个集合,后台可以使用参数 @RequestBody ListString ids 来接收
2、如果前台是这种传值方式 data:{"name":name,"id":id},
那后台可以通过创建一个字段名称对应的实体类来接收
或者使用String name = request.getParameter("name")的方式来接收
3、如果ajax选择的GET方法,那后台方法的字段名称和url的入参名称保持一致就能接收到数据了
4、window.location.href="%=path%/ui/psmpackage/toPsmPackageList";
这是跳转到新页面的方法
@RequestMapping(value = "/toPsmPackageList")
public String toPsmPackageList(HttpServletRequest request) {
return "psmPackage/psmPackageList";
}
这是后台的接受方式,返回的是对应jsp的文件夹和文件名
页面跳转的方法不需要@ResponseBody注解,而获取返回值的方法则一定要加,不然获取不到返回值
5、window.open(url); 可以在浏览器上新开一个页面。对应的是window.close();
6、如何将数据带到新增的页面
第一:第一个页面通过
window.location.href="%=path%/ui/product/condition?lineCode="+lineCode+"typeCode="+typeCode;传值
在新页面可以通过var lineCode = '%=(String)request.getParameter("lineCode")%'这种方式来取值
第二:后台代码这样处理request.setAttribute("product", result);
input name="id" type="text" value="${product.id}" /
${}来取值。
JSP如何调用java代码
首先,在服务端定义了一个类和静态方法:
public class Test {
public static String sayHello(String name){
return "hello, " + name;
}
}
注意:必须是公开的静态方法。
ajax分为同步、异步调用,如果没有传递回调函数,则是同步调用;
如果传递回调函数,则是异步调用。
同步调用
script type="text/javascript"
......
try{
var obj = Test.sayHello('world!');
......
}catch(e){
//e.error 错误码
//e.message 错误描述
}
......
/script
不传递回调函数,以try…catch来处理错误。
在同步调用模式下,如果有网络错误、业务逻辑错误等,会抛出一个异常。
异步调用
script type="text/javascript"
......
Test.sayHello('world!',
function(obj){ //success callback function
......
},
function(error, message){ //fail callback function
}
);
......
/script
传递回调函数作为参数。如果只有一个回调函数, 则默认是成功的回调函数。
jsp如何调用java类
jsp调用java类的步骤:
1.新建一个项目,在src文件夹下添加一个包:如:tianaoweb.com;
2.再在包中添加一个类:如
package com;
public class test {
public String sd(){
return "sd";
}
}
3.在默认的首页index.jsp(当然也可以自己新建一个jsp文件)的开头引入
%@ page import= "tianaoweb.com.* "%
4.在body /body中添加相应的java代码片:
如:
%
String str;
test te=new test();
%
%=te.sd() %
java开发的信息系统里,jsp与java文件是怎么传递数据的啊?
jsp与java文件传递数据可以使用Servlet类来传递,jsp将数据存入到request对象中,Servlet类获取这个request对象,并将数据取出。
示例代码如下:
JSP代码:%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
html
head
titleDemo/title
/head
body
form action="/demoServlet" method="post"
input type="text" name="name"/
input type="submit" value="提交"/
/form
/body
/html
Servlet代码:
public class DemoServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name");//获取jsp页面输入的参数
System.out.println(name);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
表单提交之后,调用Servlet类的方法,通过request对象获取jsp页面传入的参数值,实现数据的传递。
jsp 怎么用java和jsp传值
1.JSP传值给Servlet
JSP传值给Servlet有几种形式:Form表单传值,url传值,其他方式传值
a、form表单传值:
JSP页面有:input type="radio" name="staffdepartment" value="1" id="department1" /,将department的id传到Sevlet中,在程序中如下:ServletRequest request;Stringstaffdepartment=request.getParameter("staffdepartment");可获取jsp传的department,但要获取id还要进行转化:int int_staffdepartment=Integer.parseInt(staffdepartment);
b、url传值
比如这里的 a标签的 href属性与 form标签的 action属性的值 "JspServlet?action=toServlet",在 servlet同样用 request.getParameter("action")获取;
c、Java代码传值
java片段代码,servlet只能接到 session.setAttribute("testSession","Hello session")的内容,而接不到 request的内容。在 servlet里用 request.getSession().getAttribute("testSession")获取 session内容。
Servlet传值给Jsp
具体实现如下,java代码:
String a= "abccdefg ";
request.setAttribute( "ValueA ",a);
request.getRequestDispatcher( "网址/jsp页面 ").forward(request,response);
jsp页面:
%
String s =(String)request.getAttribute( "ValueA ");
%
jsp页面就可以取出Servlet的值。
spring 中如何实现jsp与java的交互
spring中利用mvc框架就可以实现jsp和java交互了。
以下用spring mvc输出hello world为例来说明:
一、项目依赖的jar包:
1.Spring框架依赖的jar包:
日志:commons-logging-1.1.3.jar;
JSTL支持:jakarta-taglibs-standard-1.1.2中的jstl.jar和standard.jar;
2.Spring的jar包:
spring-framework-3.2.5.RELEASE/libs中的jar包(这里为了方便我直接把全部都复制过去了);
把以上的jar包全部复制到项目的WebContent/WEB-INF/lib目录中。
二、在/WEB-INF中添加web.xml文件,文件内容如下:
?xml version="1.0" encoding="UTF-8"?
web-app xmlns:xsi="" xmlns="" xmlns:web="" xsi:schemaLocation=" " id="WebApp_ID" version="3.0"
display-nameSpringMVCLesson/display-name
servlet
servlet-nameSpringMVCLesson/servlet-name
servlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class
init-param
param-namecontextConfigLocation/param-name
param-valueclasspath:springservlet-config.xml/param-value
/init-param
load-on-startup1/load-on-startup!-- load-on-startup必须放在最后 --
/servlet
!-- Spring MVC配置文件结束 --
servlet-mapping
servlet-nameSpringMVCLesson/servlet-name
url-pattern//url-pattern
/servlet-mapping
/web-app
三、springservlet-config.xml文件配置:
在项目中新建一个resources的Source Folder文件夹,并添加springservlet-config.xml文件。
?xml version="1.0" encoding="UTF-8"?
beans xmlns=""
xmlns:xsi=""
xmlns:p=""
xmlns:context=""
xmlns:util=""
xmlns:mvc=""
xsi:schemaLocation="
"
!-- 默认的注解映射的支持 --
mvc:annotation-driven/
!-- 如果当前请求为“/”时,则转发到“/helloworld/index” --
mvc:view-controller path="/" view-name="forward:/helloworld/index"/
!-- 静态资源映射 --
mvc:resources mapping="/js/**" location="/WEB-INF/js/" /
mvc:resources mapping="/css/**" location="/WEB-INF/css/" /
mvc:resources mapping="/fonts/**" location="/WEB-INF/fonts/" /
mvc:resources mapping="/plugins/**" location="/WEB-INF/plugins/" /
mvc:resources mapping="images/**" location="/WEB-INF/images/" /
!-- 当上面要访问的静态资源不包括在上面的配置中时,则根据此配置来访问 --
mvc:default-servlet-handler/
!-- 开启controller注解支持 --
!-- use-default-filters="false" 只扫描指定的注解 --
context:component-scan base-package="com.demo.web.controllers" use-default-filters="false"
context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/
/context:component-scan
!-- 视图解析器 --
bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/
property name="contentType" value="text/html"/
property name="prefix" value="/WEB-INF/views/"/
property name="suffix" value=".jsp"/
/bean
/beans
mvc:annotation-driven/ 开启注解映射支持,它是为了简化配置的缩写形式,它相当于以下2个配置:
bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/
bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/
由于我们在web.xml文件里面配置的是拦截所有的请求到该servlet,所以我们在这里要对静态资源文件映射作一下配置,否则请求这些资源文件会返回404:
!-- 静态资源映射 --
mvc:resources mapping="/js/**" location="/WEB-INF/js/" /
mvc:resources mapping="/css/**" location="/WEB-INF/css/" /
mvc:resources mapping="/fonts/**" location="/WEB-INF/fonts/" /
mvc:resources mapping="/plugins/**" location="/WEB-INF/plugins/" /
mvc:resources mapping="images/**" location="/WEB-INF/images/" /
!-- 当上面要访问的静态资源不包括在上面的配置中时,则根据此配置来访问 --
mvc:default-servlet-handler/
开启Controller注解支持,并配置只扫描指定包下面的Controller:
context:component-scan base-package="com.demo.web.controllers" use-default-filters="false"
context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/
/context:component-scan
配置视图解析器,并指定视图所在的文件夹:
bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/
property name="contentType" value="text/html"/
property name="prefix" value="/WEB-INF/views/"/
property name="suffix" value=".jsp"/
/bean
添加HelloWorldController,在项目中新建一个web的Source Folder文件夹,并在文件夹下面添加com.demo.web.controllers包,在包中添加一个HelloWorldController类,类中内容如下:
package com.demo.web.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value = "/helloworld")
public class HelloWorldController {
@RequestMapping(value="/index", method = {RequestMethod.GET})
public ModelAndView index(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("message", "Hello World!");
modelAndView.setViewName("index");
return modelAndView;
}
}
其中@Controller 注解把该class指定为controller,controller 上的@RequestMapping 注解的 value值指定该controller所映射的请求。
方法上的@RequestMapping 注解指定该方法为一个action,value 值指定该action所映射的请求,method 中的RequestMethod.GET指定该action只接受get请求。
ModelAndView 中的setViewName指定了该action所对应的视图名称,解析视图时会在springservlet-config.xml文件指定的视图文件夹中寻找对应的视图。
添加视图,在项目/WEB-INF文件夹下新建一个views文件夹,并在views中添加index.jsp视图,视图内容如下:
%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
titleInsert title here/title
/head
body
${message}
/body
/html
运行项目输出结果: