
在你的页面中加个链接跳到你的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对象获得初始化参数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)