servlet中何如获取a元素的href中设置的参数,获取中文出现乱码

servlet中何如获取a元素的href中设置的参数,获取中文出现乱码,第1张

在你的页面中加个链接跳到你的Servlet中, 比如你的Servlet名字叫 test

你就加一个 <a href="testval=你要传的值">点我</a>

然后在Servlet中获取的时候 requestgetParamater("val");就可以获得!

出现乱码的原因及解决方法:

在Web开发中,挺多的时候都是通过超链接去传递中文参数的,这也会导致在显示的时候也会出现乱码,对于超链接来说,它实际上是向服务器端发送了一个请求,而它发出的请求是属于get请求,所以对于超链接的乱码来说,它处理乱码的方式和表单的get请求出现乱码的方式是一样的。

客户端的get请求

对于不同的请求方式,解决乱码的问题也是不一样的,对于客户端的get请求来说,服务器端处理要想不出现乱码,解决这个问题稍微复杂一些,需要用到String类型的构造函数,其中的一个构造函数就是用指定的编码方式去解码,一般都用“UTF-8”的方式。只要在服务器端将请求得到的参数重新构造成一个字符串就行了。如下所示:

String stuname = requestgetParameter("stuname");

String str = new String(stunamegetBytes("ISO-8859-1"),"utf-8")

经过构造之后,客户端输入中文,且表单时get请求的情况下,str就变成了中文了。如果请求参数比较多,最好将它封装成一个工具类:

public class MyUtil

{

public static String getNewString(String str) throws UnsupportedEncodingException

{

return new String(strgetBytes("ISO-8859-1"),"UTF-8");

}

}

String stuname= MyUtilgetNewString(requestgetParameter("stuname"));

首先你要了解重定向和转发的区别。重定向和转发之间最大区别在于数据的传输。重定向是没有进行传输数据,而是请求另一个新的request。

其次,jsp页面要传值给servlet,有很多中方法,常用的是通过jsp页面的id对应值获取,比方说在form表单中,有个<input type = "text" id ="username" /> 那么在你对应的Servlet端对应的传输方式中获取该参数值就可以应用到

String user = (String)requestgetParamter("username");

这样你就能获取到参数。

再或,你可以再Url后面直接传值,

<form action="/LoginServletusername='Hello'&password='123'">

Servlet端同样也是上一种方法获取。

七、ServletConfig对象

在Servlet的配置文件中可以使用一个或多个<init-param>标签为Servlet配置初始化参数,web服务器会在创建Servlet对象时,将这些参数封装在ServletConfig对象中,因此我们可以通过ServletConfig对象来获取一个Servlet的初始化参数。通常将Servlet运行时要读取的配置文件写在这里。

八、ServletContext对象

ServletContext对象代表了一个应用,他是一个Context域对象,它里面的方法主要是一些全局性的方法,可以用来存储各个Servlet之间的共享数据。

ServletContext对象的应用场景,主要用于Servlet之间数据共享(可以用来做聊天室),获取web应用的初始化参数,实现Servlet转发,读取资源文件。

配置web应用的初始化参数,在webxml文件中使用标签<context-param>,通常在这里配置数据库连接,

Servlet的转发和重定向,转发(你来请求我,我将请求转给他),通常转发给jsp用来美化输出,重定向(你来请求我,我让你重新请求他)

RequestDispatcher rd = thisgetServletContext()getRequestDispatcher("/1jsp");

rdforward(request,response);

九、利用ServletContext读取资源文件

1

1 InputStream stream = thisgetServletContext()getResourceAsStream("/WEB-INF/classes/dbproperties");

2 Propertied prop = new Properties();

3 propload(stream);

4 propgetProperty("user");

2

//这种方式,可以很方便的获取文件名称

String path = thisgetServletContext()getRealPath("/WEB-INF/classes/dbproperties");

FileInputStream inStream = new FileInputStream(path);

Propertied prop = new Properties();

propload(stream);

propgetProperty("user");

十、Java web应用中非Servlet程序读取资源文件

1

//使用类装载器,文件不能太大

public class UserDao

{

private static Properties prop = new Properties();

static

{

//InputStream inStream = UserDaoclassgetClassLoader()getResourceAsStream("dbproperties"); 这种方式无法获取到更新后的数据

String path = UserDaoclassgetClassLoader()getResource("dbproperties");

FileInputStream inStream = new FileInputStream(path); //这种方式可以获取到更新后的数据

propload(inStream);

}

public void update()

{

//引用inStream

}

public void find()

{

//引用inStream

}

}

以上就是关于servlet中何如获取a元素的href中设置的参数,获取中文出现乱码全部的内容,包括:servlet中何如获取a元素的href中设置的参数,获取中文出现乱码、在jsp文件重定向把参数带到servlet后怎么得到参数的值、如何利用servletcontext和servletconfig对象获得初始化参数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9788693.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存