java session 乱码_若若地问一句:jsp中session的编码方式是什么?其实是因为乱码问题才问的...

你的位置:

问答吧

-> JSP

-> 问题详情

若若地问一句:jsp中session的编码方式是什么?其实是因为乱码问题才问的

最近使用session跨页面传值,可是当我这样用的时候session.setAttribute("nickname",nkname),注:nkname是汉字。然后跳转到另外一个页面取它出来的时候,就是session.getAttribute("nkname").toString(),它就会乱码成为一个个???。试过了csdn里面好多办法都不行的情况下,用了这样一个方法:Strng getFromSession=new String((String)session.getAttribute( "sessionName ").getBytes( "GBK "), "ISO-8859-1 "); 所以我怀疑,session中的编码方式是不是ISO-8859-1?还是其他的? 还请各位朋友不吝赐教哦,恕我愚钝哈........

作者: tiamoming

发布时间: 2010-09-06

实在不行建议写个过滤器

package com.filter;

import java.io.IOException;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

public class Filter implements javax.servlet.Filter {

public void destroy() {

// TODO Auto-generated method stub

}

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException {

HttpServletRequest newRequest=(HttpServletRequest)request;

String pathString=newRequest.getRequestURI(); //获取路径

if (pathString.lastIndexOf(".")>0) {

String path=pathString.substring(pathString.lastIndexOf("."),pathString.length());

if (path.equals(".css")||path.equals(".js")) { //判断是否是js或css文件

chain.doFilter(request, response);

}

else {

request.setCharacterEncoding("gbk");

response.setCharacterEncoding("gbk");

chain.doFilter(request, response);

}

}

else {

request.setCharacterEncoding("gbk");

response.setCharacterEncoding("gbk");

chain.doFilter(request, response);

}

}

public void init(FilterConfig arg0) throws ServletException {

// TODO Auto-generated method stub

}

}

配置webxml.txt

filter

com.filter.Filter

filter

/*

作者: HWmsdn

发布时间: 2010-09-06

我觉得应该是setAttribute的时候nkname已经是乱码了吧,因为再getAttribute应该不存在编码问题的。

作者: ChDw

发布时间: 2010-09-06

引用 2 楼 chdw 的回复:我觉得应该是setAttribute的时候nkname已经是乱码了吧,因为再getAttribute应该不存在编码问题的。

我可以确定,存进去的时候是正确的,的确是中文。因为,我试着存进去之后,在不跳转的情况下,本页又取出来,结果是正确的。问题就存在于跨页面取就出现问题。用我题目描述的方法可以解决,所以我很好奇的问了下,session的编码方式。

作者: tiamoming

发布时间: 2010-09-06

老问题,如果你用的是tomcat,设置一下配置文件,如果用的别的容器,请举一反三。

server.xml文件

HTML code

注意红色字体部分,编码根据你自己情况更改一下,比如GBK....

作者: netsgo

发布时间: 2010-09-06

晕上面的代码不能加样式

connectionTimeout="20000"

redirectPort="8443"

URIEncoding="UTF-8" />

作者: netsgo

发布时间: 2010-09-06

我觉得应该是你另外地方setAttribute的,Session就是内存持有的对象而已,已经不会再做编码转换的

你可以写一个HttpSessionAttributeListener看看是什么地方放进去了。

作者: ChDw

发布时间: 2010-09-06

引用楼主 tiamoming 的回复:

最近使用session跨页面传值,可是当我这样用的时候session.setAttribute("nickname",nkname),注:nkname是汉字。然后跳转到另外一个页面取它出来的时候,就是session.getAttribute("nkname").toString(),它就会乱码成为一个个???。试过了csdn里面好多办法都不行的情况下,用了这样一个方法:Strng getFromS……

你用的那个Strng getFromSession=new String((String)session.getAttribute( "sessionName ").getBytes( "GBK "), "ISO-8859-1 "); 方法的原理是在网页转发时,session会把你原来页面的格式转化成字节码,你这个方法是把你转化成字节码格式的字符再从新编译成ISO的形式显示

作者: yousigai

发布时间: 2010-09-06

首先 你统一编码 在转换 就OL 那那么麻烦 乱码 问题一个原因 编码不统一 最烦的就是这问题

作者: falconkabu

发布时间: 2010-09-06

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个自编码器对特征进行降维并提取特征的 Python 代码示例: ```python import numpy as np import tensorflow as tf # 定义自编码器模型 class Autoencoder: def __init__(self, input_dim, hidden_dim): self.input_dim = input_dim self.hidden_dim = hidden_dim self.inputs = tf.placeholder(tf.float32, [None, input_dim]) self.weights = { 'encoder': tf.Variable(tf.random_normal([input_dim, hidden_dim])), 'decoder': tf.Variable(tf.random_normal([hidden_dim, input_dim])) } self.biases = { 'encoder': tf.Variable(tf.random_normal([hidden_dim])), 'decoder': tf.Variable(tf.random_normal([input_dim])) } self.encoded = tf.nn.sigmoid(tf.add(tf.matmul(self.inputs, self.weights['encoder']), self.biases['encoder'])) self.decoded = tf.nn.sigmoid(tf.add(tf.matmul(self.encoded, self.weights['decoder']), self.biases['decoder'])) self.loss = tf.reduce_mean(tf.pow(self.inputs - self.decoded, 2)) self.optimizer = tf.train.AdamOptimizer().minimize(self.loss) self.sess = tf.Session() self.sess.run(tf.global_variables_initializer()) # 训练自编码器模型 def train(self, input_data, epochs=1000, batch_size=32): num_batches = input_data.shape[0] // batch_size for epoch in range(epochs): epoch_loss = 0.0 for i in range(num_batches): batch_data = input_data[i*batch_size:(i+1)*batch_size] _, loss = self.sess.run([self.optimizer, self.loss], feed_dict={self.inputs: batch_data}) epoch_loss += loss if epoch % 100 == 0: print('Epoch', epoch, 'loss:', epoch_loss/num_batches) # 提取特征 def extract_features(self, input_data): return self.sess.run(self.encoded, feed_dict={self.inputs: input_data}) # 测试代码 if __name__ == '__main__': # 构造一个 1000 维输入数据,共有 100 个样本 input_data = np.random.rand(100, 1000) # 定义一个自编码器模型,输入维度为 1000,隐藏层维度为 100 autoencoder = Autoencoder(1000, 100) # 训练模型 autoencoder.train(input_data) # 提取特征 features = autoencoder.extract_features(input_data) print(features.shape) ``` 这个示例代码实现了一个简单的自编码器模型,并使用该模型对 1000 维输入数据进行特征提取和降维。训练时可以设置不同的超参数,以控制模型训练的效果。特征提取时,将输入数据传入自编码器的编码器部分,得到编码后的特征向量作为输出。你可以根据自己的需要修改输入数据的维度和隐藏层维度,以及训练次数和批次大小等超参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值