关于servlet与jsp&java类传值问题

为了实现单击左侧导航栏,动态改变右侧(一个jsp文件)的内容,需要改变变量var的值,进而实现改变default部分内容的目的(自己想的方法,因为实在是layman。应该有简便快捷的方法,可我不知道。)

  详述一下整个流程,以免以后忘记。定义一个java方法,其中定义静态变量var,使得当var被赋予不同的值时default显示不同内容。而赋值的触发条件是单击某个<a>,即onclick。这里面的问题是,如何在jsp里面改变java里的变量值。。。。解决方法就是servelet了。下面是jsp中的js代码,触发条件为

<a href=""onclick=AjaxServlet("list")>  资讯</a>

  list是我希望传递给变量var的值

<script>
    var req;
    function AjaxServlet(pointInfo) {
      //获取表单提交的内容
      var url="AjaxServlet?id="+pointInfo;//?之前代表要访问的servlet名称,要在web.xml文件里定义。?后面是传递的值。
      console.log(url);
      //创建一个XMLHttpRequest对象req
      if(window.XMLHttpRequest) {
        //IE7, Firefox, Opera支持
        req = new XMLHttpRequest();
      }else if(window.ActiveXObject) {
        //IE5,IE6支持
        req = new ActiveXObject("Microsoft.XMLHTTP");
      }
      /*
       open(String method,String url, boolean )函数有3个参数
       method参数指定向servlet发送请求所使用的方法,有GET,POST等
       boolean值指定是否异步,true为使用,false为不使用。
       我们使用异步才能体会到Ajax强大的异步功能。
       */
      req.open("POST", url, true);

//console.log("!!!!!!!!!!!!!!!!!!!!");//调试用 //onreadystatechange属性存有处理服务器响应的函数,有5个取值分别代表不同状态 // req.onreadystatechange = callback; //不需要返回值//send函数发送请求 req.send(null); } </script>

  下面是servelet在web.xml文件里的配置,名字自定义。class即创建的java方法url-pattern是在jsp或其他位置调用servelet的方法,可以是自己定义的任何字符串组合(应该是)。

  <servlet>
        <servlet-name>AjaxServlet</servlet-name>
        <servlet-class>Model.AjaxServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AjaxServlet</servlet-name>
        <url-pattern>/AjaxServlet</url-pattern>
    </servlet-mapping>

  然后。java

package Model;

/**
 * Created by sinisiter on 2015/7/11.
 */

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AjaxServlet extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            System.out.print("Nnnnn!!!!!");//调试时候用的,就不删了
            response.setContentType("text/html");
            response.setHeader("Cache-Control", "no-store");
            response.setHeader("Pragma", "no-cache");
            response.setDateHeader("Expires", 0);
            String name = request.getParameter("id");//得到传递的值
            if(1>0) {
                test.pointr=name;//赋值给我要的变量   后面的实现get与put方法神马的,还没搞明白。不过现在是可用的
            }
            else {
                System.out.print("NO!!!!!");
            }
        } finally {
            out.close();
        }
    }
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
        return "Short description";
    }

}

  ok。至此,整个工作结束

个人觉得,无非是servelet名称一致。url-pattern定义正确,还有上面js用的是ajax的方式。

时间: 2024-08-06 03:41:46

关于servlet与jsp&java类传值问题的相关文章

【jsp】Servlet与jsp之间的传值

Servlet与JSP 之间的传值有两种情况:JSP -> Servlet, Servlet -> JSP. 通过对象 request和 session (不考虑 application)完成传值. 一.JSP -> servlet JSP页面有3种方法向 servlet传值: form表单.URL <!-- JSP page --> ... <%...... session.setAttribute("testSession","Hell

Servlet与jsp间的传值问题

Servlet与JSP 之间的传值有两种情况:JSP -> Servlet, Servlet -> JSP.通过对象 request和 session (不考虑 application)完成传值. 一.JSP -> servlet JSP页面有3种方法向 servlet传值: form表单.URL .java片段代码 form表单: <form action="JspServlet?action=toServlet" method="post"

java web验证码生成总结(包括servlet、jsp和struts2实现)(转)

一.使用纯Servlet实现验证码 (1)在web.xml配置: [java] view plaincopy <servlet> <servlet-name>image</servlet-name> <servlet-class>org.test.web.AuthImage</servlet-class> </servlet> <servlet-mapping> <servlet-name>image</

(转)在JSP中调用JAVA类和使用JavaBean有什么区别?

在JSP中调用JAVA类和使用JavaBean有什么区别? 可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类.特殊在可以通过<jsp:useBean   />调用JavaBean而其他类,可以和一般java中一样使用.  Bean的参数中还可以指定范围, <jsp:useBean  scope="application"   />该Bean在服务器的JVM中将只有一个实例. Bean是和WebServer相关的,不同的页面可以通过Bean 交

servlet+jsp+java实现Web应用

servlet+jsp+java实现Web应用 环境: 1,eclipse 2,tomcat3,eclipse tomcat 插件 开发过程: 1,建立一个Dynamic Web Project 2,创建一个欢迎页面 页面可以是jsp/html,我们选择一个jsp页面(放在WebContent内) <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding=

熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验. 1.说一说Servlet生命周期(非常重要) Servlet生命周期包括三部分: 初始化:Web容器加载servlet,调用init()方法 只执行一次 处理请求:当请求到达时,运行其service()方法.service()自动调用与请求相对应的doXXX

java web开发入门一(servlet和jsp)基于eclispe

servlet 用java语言开发动态资源网站的技术,在doGet方法中拼接显示html,在doPost方法中提交数据.类似于.net的ashx技术. servlet生成的class文件存放在tomcat中webapps目录下. 1.开发一个servlet步骤: 1)在src下新建包并编写java类,继承HttpServlet类 2)重写doGet和doPost方法 package com.eggtwo.boss; import java.io.IOException; import javax

jsp页面应用Java类

两种方法将Java类应用到jsp页面中: 1. <jsp:useBean id="类实例名字" class="具体的类" scope="page/request/session/application" /><jsp:setProperty name="id的值" property="参数名" value="参数值" />//或者多个参数直对<jsp:get

java类中调用servlet

一.Java中调用servlet说明: 我们有时可能需要在Java类中调用Servlet从而实现某些特殊的功能,在JavaAPI中提供了一个URL的类,其中openStream( )方法可以打开URL的连接,并返回一个用于该连接读入的InputStream. 二.Java中调用servlet应用举例: package com.solid.test; import java.io.BufferedReader; import java.io.IOException; import java.io.