
原理:
1随机生成4个数字 用到了Random类
2对这4个数字设置字体格式 用 setFont方法
3改变字体颜色用setColor 然后随机生成颜色
代码如下
package s1;
import javaawtColor;
import javaawtFont;
import javaawtGraphics;
import javaawtimageBufferedImage;
import javaioIOException;
import javaioPrintWriter;
import javautilRandom;
import javaximageioImageIO;
import javaxjmsSession;
import javaxservletServletException;
import javaxservlet>
在Servlet端,获取参数可以通过
requestgetInputStream,及requestgetParamter来进行。
其中,当Rest访问传入参数是通过conn的outputStream来进行的,可以通过requestgetInputStream来进行参数获取(Post方式可通用);
当以urlkey=value方法传递参数时,可以通过requestgetParamter来进行参数获取。(Post方式可通用)
其中requestgetInputStream和requestgetParamter两种方式不能同时出现。当requestgetParamter运行的过程,也是输入流的读取过程。当输入流读取完成后,再次调用时无效的。
以下是android手机上发送文件名并且得到文件大小的代码Java
code
//
向服务器提出下载请求,返回下载文件的大小
private
long
request(String
fileName,
String
password)
throws
IOException
{
//
获取socket的输入流并包装成DataInputStream
DataInputStream
in
=
new
DataInputStream(socketgetInputStream());
//
获取socket的输出流并包装成PrintWriter
PrintWriter
out
=
new
PrintWriter(new
OutputStreamWriter(
socketgetOutputStream()));
//
生成下载请求字符串
String
requestString
=
fileName;//
+
@
+
password;
Systemoutprintln(发出下载请求:+fileName);
outprintln(requestString);
//
发出下载请求
outflush();
return
inreadLong();
//
接收并返回下载文件长度}
以下是C#服务器收到android发来的文件名,知道文件之后发送文件大小和文件的代码C#
code
private
string
ReceiveFileName(){string
recvStr
=
;byte[]
recvBytes
=
new
byte[1024];int
bytes
=
m_socketReceive(recvBytes,
recvBytesLength,
0);
//从android客户端接受信息recvStr
=
EncodingASCIIGetString(recvBytes,
0,
bytes);ConsoleWriteLine(文件名+recvStr);return
recvStr;//返回文件名}
private
void
SendFile(){while
(m_IsStart){string
fileName
=
ReceiveFileName();if
(fileName
!=
){if
(FileExists(m_FileDirect
+
1jpg))//下载本地存在的一个文件{FileInfo
fi
=
new
FileInfo(m_FileDirect
+
1jpg);byte[]
len
=
BitConverterGetBytes(fiLength);m_socketSend(len);//发送文件的长度//发送文件try{m_socketSendFile(m_FileDirect
+
1jpg);}catch
(Exception
e){ConsoleWriteLine(出现错误
+
eMessage);}}}}}
------解决方案--------------------------------------------------------
Java
code//
获取socket的输入流并包装成DataInputStream
这个不就是接收的地方吗在第一段代码中
requestentityacceptcharset方法:注解:@ResponseBody 概念
@ResponseBody :该注解使用在Controller 方法上的 。将方法的返回值通过适当的转换器转换为指定的格式之后,写入到 response 对象的 body 区),通常用来给客户端返回 JSON 数据或者是 XML 数据。
当方法上面没有写 ResponseBody 时,底层会将方法的返回值封装为 ModelAndView 对象;需要注意的是,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过 response 对象输出指定格式的数据。
bad request
错误的请求
Bad Request The server did not understand the request 跟读
Bad Request 服务器不能理解该请求
Request对象的主要方法
setAttribute(String name,Object):设置名字为name的request 的参数值
getAttribute(String name):返回由name指定的属性值
getAttributeNames():返回request 对象所有属性的名字集合,结果是一个枚举的实例
getCookies():返回客户端的所有 Cookie 对象,结果是一个Cookie 数组
getCharacterEncoding() :返回请求中的字符编码方式
getContentLength() :返回请求的 Body的长度
getHeader(String name) :获得>
以上就是关于用java怎么制作验证码全部的内容,包括:用java怎么制作验证码、qs的安装与使用、如何获取jsp输出内容用HttpServletResponseWrapper等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)